目录
目录README.md

workman-sse

workman 推送系统

请使用 composer 安装think-worker后再安装本扩展

tp8.0

注:think-worker(5.x) 不支持 windows 环境,请在 linux 环境下安装。

composer require topthink/think-worker:^5.0

使用

修改配置

/app/event.php

<?php
// 事件定义文件
return [
    'bind'      => [
    ],

    'listen'    => [
        'AppInit'  => [],
        'HttpRun'  => [],
        'HttpEnd'  => [],
        'LogLevel' => [],
        'LogWrite' => [],
        // 新增worker.init事件,用于初始化worker
        'worker.init' => ['wokmansse\common\WorkerInit'],//根据扩展配置项【部署模式】不同,开启一个port或连续的两个port
    ],

    'subscribe' => [
    ],
];

webman 修改配置

/config/process.php

 return [
    //....其它配置,这里省略....
    'wokmansse'  => [
        'handler'  => 'wokmansse\sse\Index',
        'listen'  => 'http://0.0.0.0:22990',//支持sse连接
        'count' => 1, // 进程数(只能是1)
        'user' => 'www',
        'group' => 'www',
    ],
    // 如果需要使用websocket
    'wokmansse-ws'  => [
        'handler'  => 'wokmansse\sse\Index',
        'listen'  => 'websocket://0.0.0.0:22991',
        'count' => 1, // 进程数(只能是1)
        'user' => 'www',
        'group' => 'www',
    ],

    //根据扩展配置项【部署模式】不同,以上两种保留一种或同时保留
];
//修改完重启webman

环境要求

需要使用以下 php 方法,确保以下方法未被禁用:

pcntl_wait
pcntl_signal
pcntl_fork
pcntl_signal_dispatch
pcntl_alarm
其他(待补充)

tp 启动脚本,start.sh

COUNT1=`ps -ef |grep WorkerMan|grep -v "grep" |wc -l`;

echo $COUNT1

if [ $COUNT1 -eq 0 ];then

    cd /www/wwwroot/www.localhost.com

    php83 think worker # 宝塔安装了php多版本,可使用php83代表php 8.3

    #/www/server/php/83/bin/php think worker # 或者可使用php绝对路径

fi

如果需要使用守护进程方式运行,建议使用 supervisor 来管理进程

启动成功

在 linux 终端执行以下命令,以判断启动成功

ps aux | grep WorkerMan

如果输出类似以下,说明启动成功。

root      132200  0.0  0.1 217728 13776 ?        S    11:43   0:00 WorkerMan: master process  start_file=/www/wwwroot/www.localhost.com/think
www       133280  0.0  0.2 218316 22000 ?        S    11:55   0:00 WorkerMan: worker process  wokmansse websocket://0.0.0.0:22990

如果只有第一条[master process]没有[worker process],则是启动失败,请到网站的runimeme目录里面查看worker22990.stdout.log日志分析原因。

使用文档和 api 文档见 doc.md

关于

基于workerman实现的SSE(Server-Sent Events)推送

69.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号