zgldh/workerboy
Composer 安装命令:
composer require zgldh/workerboy
包简介
Workerman 3 for Laravel 5.
README 文档
README
请移步这里: http://workerman.net/gatewaydoc/work-with-other-frameworks/README.html
水平有限,workerboy坑了 This package is deprecated.
Workerboy
Workerboy是Workerman3在Laravel5下的封装。
装上以后就可以用Laravel的artisan命令来管理workerman了。
依赖
PHP 5.4
本产品依赖 PHP的"ext-sockets" 扩展。Windows下就别想了。
为了提升性能,推荐安装"ext-libevent" 扩展。看这里: http://www.workerman.net/install
更新
- 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
用法
composer require zgldh/workerboy。- 在
config\app.php的providers数组添加zgldh\workerboy\WorkerBoyServiceProvider。 php artisan vendor:publish将workerboy.php配置项输出到config目录下。php artisan workerboy:create MyApplication新建一个Workerman3应用。- 编辑
Event.php文件。写业务逻辑。 - 在
config/workerboy.php的applications数组里增加刚刚添加的Workerman3应用。 php artisan workerboy:start --deamon启动所有Workerman3应用。
命令
workerboy:create ApplicationName 创建一个Workerman3应用,默认是Gateway/BusinessWorker模式。
workerboy:create ApplicationName --worker-only 使用纯Worker模式创建一个Workerman3应用。
workerboy:start 启动Workerman3所有的应用。默认是调试模式。
workerboy:start --deamon 以daemon方式启动。
workerboy:stop 停止系统。
workerboy:stop 重启系统。
workerboy:reload 平滑重启。
workerboy:status 查看状态。
具体请看: http://doc3.workerman.net/install/start-and-stop.html
凭证机制
开发者常遇痛点:WebSocket连上了,如何告诉Socket服务器当前连上的是Web服务器里的哪个用户呢? 直接在连接的时候写上UserId?那太不保险了。 Workerboy为了解决该问题而产生了凭证机制,用于同步Web服务器用户ID和Socket服务器ClientId。
一共3步:
- 在做WebSocket的页面输出一个凭证:
```javascript
<script>
var WORKERBOY_CREDENTIAL = <?php echo json_encode(\zgldh\workerboy\WorkerBoy::getInstance()->outputCredential()); ?>;
</script>
```
- 在WebSocket连接时将凭证传过去:
```javascript
var ws = new WebSocket('ws://' + window.location.host + ':8685');
ws.onopen = function () {
ws.send(JSON.stringify({
type : "login",
workerboy_credential: WORKERBOY_CREDENTIAL
}));
};
```
- 在Event.php里面验证凭证:
```php
$workerBoy = WorkerBoy::getInstance();
$credential = @$message_data['workerboy_credential'];
$userId = $workerBoy->validateCredential($credential);
```
这样你就拿到了当前Socket连接用户在Web服务器里的UserId了。
凭证机制默认使用Laravel的Session进行储存,你可以修改config/workerboy.php的credential_processor项来自定义凭证机制。
Workerman 3.0
GitHub: https://github.com/walkor/workerman
Home page:http://www.workerman.net
Documentation:http://doc3.workerman.net
zgldh/workerboy 适用场景与选型建议
zgldh/workerboy 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 204 次下载、GitHub Stars 达 44, 最近一次更新时间为 2015 年 04 月 14 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「Socket」 「laravel」 「workerman」 「websocket server」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 zgldh/workerboy 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 zgldh/workerboy 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 zgldh/workerboy 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Cubex Framework with Workerman
Workerman extension for Ubiquity framework
NO LIBRARIES socket per page bridge for your Laravel application.
Free PHP WebSocket
A light weight PHP http client implements PSR7, use socket/curl for sending requests.
基于Tcp的JsonRpc2.0客户端
统计信息
- 总下载量: 204
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 45
- 点击次数: 20
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-04-14