myaccountl/laravel-workerman

v1.0.2 2023-08-02 02:44 UTC

This package is auto-updated.

Last update: 2024-05-01 00:06:10 UTC


README

发布配置

php artisan vendor:publish --tag=workerman

开发

  1. 实现Myaccountl\LaravelWorkerman\Events\WorkermanEventInterface 接口按不同事件进行业务逻辑编写
  2. 者继承 Myaccountl\LaravelWorkerman\Events\EventsHandle 该类已经实现了WorkermanEventInterface 并实现了基础的用户绑定、广播分组加入和OnConnect连接事件,该事件传入$client_id可绑定Myaccountl\LaravelWorkerman\Events\WSConnectEvent实现自己的websocket连接事件业务,
  3. 重写该该类的OnMessage方法时须调用parent::OnMessage 否则用户绑定和广播分组加入将不可用

使用

  1. Windows

    > php artisan workerman --s=register // 启动注册中心
    php artisan workerman --s=gateway // 启动网关
    php artisan workerman --s=worker // 启动业务处理

  2. Linux

    php artisan workerman <action> {--d} {--s=*} // 操作wokerman启动 停止 重启 查看状态等
    ###### 参数说明:

    • action:
      • start -- 启动
      • stop -- 停止
      • restart -- 重启
      • status -- 查看状态
    • --d: 后台启动
    • --s: 要启动的服务 默认:all 启动register gateway worker 所有服务
      • 参数值为:all register gateway worker 中的一个
      • 示例:php artisan workerman start --s=gateway --s=worker

使用示例

一、客户端发送

// 加入分组
{"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))