2017 © Pedro Peláez
 

library workerboy

Workerman 3 for Laravel 5.

image

zgldh/workerboy

Workerman 3 for Laravel 5.

  • Friday, March 17, 2017
  • by zgldh
  • Repository
  • 4 Watchers
  • 43 Stars
  • 169 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 12 Forks
  • 1 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

请移步这里: http://workerman.net/gatewaydoc/work-with-other-frameworks/README.html, (*1)

水平有限,workerboy坑了 This package is deprecated., (*2)

Workerboy

Workerboy是Workerman3在Laravel5下的封装。, (*3)

装上以后就可以用Laravel的artisan命令来管理workerman了。, (*4)

依赖

PHP 5.4, (*5)

本产品依赖 PHP的"ext-sockets" 扩展。Windows下就别想了。, (*6)

为了提升性能,推荐安装"ext-libevent" 扩展。看这里: http://www.workerman.net/install, (*7)

更新

  • v0.15 增加了“凭证”机制,用于同步Web服务器用户ID和Socket服务器ClientId。具体请查看下面凭证机制说明。
  • v0.14 修复了多workerman应用间互相冲突的bug。 请注意新的config格式: /vendor/zgldh/workerboy/config/workerboy.php 请注意每个应用的start.php里面需要给每个worker配置config。具体请看应用模板文件/vendor/zgldh/workerboy/templates/\GatewayBusinessWorkerApplication/start.php

用法

  1. composer require zgldh/workerboy
  2. config\app.phpproviders数组添加 zgldh\workerboy\WorkerBoyServiceProvider
  3. php artisan vendor:publish 将workerboy.php配置项输出到config目录下。
  4. php artisan workerboy:create MyApplication 新建一个Workerman3应用。
  5. 编辑Event.php文件。写业务逻辑。
  6. config/workerboy.phpapplications数组里增加刚刚添加的Workerman3应用。
  7. php artisan workerboy:start --deamon 启动所有Workerman3应用。

命令

  • create

    workerboy:create ApplicationName 创建一个Workerman3应用,默认是Gateway/BusinessWorker模式。 workerboy:create ApplicationName --worker-only 使用纯Worker模式创建一个Workerman3应用。, (*8)

  • start

    workerboy:start 启动Workerman3所有的应用。默认是调试模式。 workerboy:start --deamon 以daemon方式启动。, (*9)

  • stop

    workerboy:stop 停止系统。, (*10)

  • restart

    workerboy:stop 重启系统。, (*11)

  • reload

    workerboy:reload 平滑重启。, (*12)

  • status

    workerboy:status 查看状态。, (*13)

具体请看: http://doc3.workerman.net/install/start-and-stop.html, (*14)

凭证机制

开发者常遇痛点:WebSocket连上了,如何告诉Socket服务器当前连上的是Web服务器里的哪个用户呢? 直接在连接的时候写上UserId?那太不保险了。 Workerboy为了解决该问题而产生了凭证机制,用于同步Web服务器用户ID和Socket服务器ClientId。, (*15)

一共3步:, (*16)

  1. 在做WebSocket的页面输出一个凭证:, (*17)

    <script>
        var WORKERBOY_CREDENTIAL = <?php echo json_encode(\zgldh\workerboy\WorkerBoy::getInstance()->outputCredential()); ?>;
    </script>
    
  2. 在WebSocket连接时将凭证传过去:, (*18)

    var ws = new WebSocket('ws://' + window.location.host + ':8685');
    ws.onopen = function () {
        ws.send(JSON.stringify({
            type                : "login",
            workerboy_credential: WORKERBOY_CREDENTIAL
        }));
    };
    
  3. 在Event.php里面验证凭证:, (*19)

    $workerBoy = WorkerBoy::getInstance();
    $credential = @$message_data['workerboy_credential'];
    $userId = $workerBoy->validateCredential($credential);
    

    这样你就拿到了当前Socket连接用户在Web服务器里的UserId了。, (*20)

    凭证机制默认使用Laravel的Session进行储存,你可以修改config/workerboy.phpcredential_processor项来自定义凭证机制。, (*21)

Workerman 3.0

GitHub: https://github.com/walkor/workerman, (*22)

Home page:http://www.workerman.net, (*23)

Documentation:http://doc3.workerman.net, (*24)

The Versions

17/03 2017

dev-master

9999999-dev

Workerman 3 for Laravel 5.

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-sockets *

 

by Avatar zgldh

laravel workerman socket websocket server

15/06 2015

v0.15

0.15.0.0

Workerman 3 for Laravel 5.

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-sockets *

 

by Avatar zgldh

laravel workerman socket websocket server

14/05 2015

v0.14.1

0.14.1.0

Workerman 3 for Laravel 5.

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-sockets *

 

by Avatar zgldh

laravel workerman socket websocket server

08/05 2015

v0.13

0.13.0.0

Workerman 3 for Laravel 5.

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-sockets *

 

by Avatar zgldh

laravel workerman socket websocket server