myaccountl / laravel-workerman
v1.0.2
2023-08-02 02:44 UTC
Requires
- php: ^7.4|^8.0
- illuminate/console: ^6.9|^7.0|^8.0|^9.0
- illuminate/support: ^6.9|^7.0|^8.0|^9.0
- myaccountl/laravel-tools: ^1.0
- workerman/gateway-worker: ^3.1.0
This package is auto-updated.
Last update: 2024-12-01 00:08:59 UTC
README
发布配置
php artisan vendor:publish --tag=workerman
开发
- 实现
Myaccountl\LaravelWorkerman\Events\WorkermanEventInterface
接口按不同事件进行业务逻辑编写 - 者继承
Myaccountl\LaravelWorkerman\Events\EventsHandle
该类已经实现了WorkermanEventInterface
并实现了基础的用户绑定、广播分组加入和OnConnect连接事件,该事件传入$client_id可绑定Myaccountl\LaravelWorkerman\Events\WSConnectEvent
实现自己的websocket连接事件业务, - 重写该该类的OnMessage方法时须调用parent::OnMessage 否则用户绑定和广播分组加入将不可用
使用
Windows
>
php artisan workerman --s=register
// 启动注册中心
php artisan workerman --s=gateway
// 启动网关
php artisan workerman --s=worker
// 启动业务处理Linux
php artisan workerman <action> {--d} {--s=*}
// 操作wokerman启动 停止 重启 查看状态等
###### 参数说明:- action:
- start -- 启动
- start -- 启动
- stop -- 停止
- stop -- 停止
- restart -- 重启
- restart -- 重启
- status -- 查看状态
- status -- 查看状态
- --d: 后台启动
- --s: 要启动的服务 默认:all 启动register gateway worker 所有服务
- 参数值为:all register gateway worker 中的一个
- 参数值为:all register gateway worker 中的一个
- 示例:
php artisan workerman start --s=gateway --s=worker
- 示例:
- action:
使用示例
一、客户端发送
// 加入分组
{"type": "join", "group": "broadcast:user:channel"}
// 心跳 每30秒发送一次
{"type": "ping"}
// 绑定用户 uid为用户加密ID
{"type": "bind", "uid": "YWRleUhWK25PVTQ9"}
二、服务端发送消息到客户端
use GatewayWorker\Lib\Gateway;
Gateway::sendToUid(7, json_encode(['type' => 'test', 'message' => 'user_send 测试消息!'], JSON_UNESCAPED_UNICODE))
Gateway::sendToGroup('broadcast:user:channel', json_encode(['type' => 'test', 'message' => 'group 测试消息!'], JSON_UNESCAPED_UNICODE))