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: 2025-10-29 03:19:11 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))