首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
swoole-cli-v5.0.1-cygwin64多进程模式下push方法出错
### 问题描述 swoole-cli-v5.0.1-cygwin64开启websocket服务worker_num设置多个,在不同进程里面push操作会报错 Warning: Swoole\WebSocket\Server::push(): session#1 does not exists in 用swoole-cli-v4.8.12-cygwin64版本没有问题 ### Swoole版本,PHP版本,以及操作系统版本信息 swoole-cli-v5.0.1-cygwin64 win11 ### 相关代码 ```php <?php $server = new Swoole\Websocket\Server('0.0.0.0', 9502); $server->set(['worker_num'=>2]); $server->on('start', function ($server) { echo "Websocket Server is started at ws://127.0.0.1:9502\n"; }); $server->on('workerStart', function ($server,$worker_id) { echo "worker_id: $worker_id start\n"; }); $server->on('open', function($server, $req) { echo "connection open: {$req->fd}\n"; }); $server->on('message', function($server, $frame) { echo "received message: {$frame->data}\n"; if($frame->fd==2){ $server->push(1, json_encode(['hello', 'world'])); } }); $server->on('close', function($server, $fd) { echo "connection close: {$fd}\n"; }); $server->start(); ``` ### 你期待的结果是什么?实际看到的错误信息又是什么?
发布于3年前 · 43 次浏览 · 来自
提问
sff
### 问题描述 swoole-cli-v5.0.1-cygwin64开启websocket服务worker_num设置多个,在不同进程里面push操作会报错 Warning: Swoole\WebSocket\Server::push(): session#1 does not exists in 用swoole-cli-v4.8.12-cygwin64版本没有问题 ### Swoole版本,PHP版本,以及操作系统版本信息 swoole-cli-v5.0.1-cygwin64 win11 ### 相关代码 ```php <?php $server = new Swoole\Websocket\Server('0.0.0.0', 9502); $server->set(['worker_num'=>2]); $server->on('start', function ($server) { echo "Websocket Server is started at ws://127.0.0.1:9502\n"; }); $server->on('workerStart', function ($server,$worker_id) { echo "worker_id: $worker_id start\n"; }); $server->on('open', function($server, $req) { echo "connection open: {$req->fd}\n"; }); $server->on('message', function($server, $frame) { echo "received message: {$frame->data}\n"; if($frame->fd==2){ $server->push(1, json_encode(['hello', 'world'])); } }); $server->on('close', function($server, $fd) { echo "connection close: {$fd}\n"; }); $server->start(); ``` ### 你期待的结果是什么?实际看到的错误信息又是什么?
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2022-11-17
Rango
在 `5.0` 版本之后默认运行模式为 `SWOOLE_BASE`,请设置第三个参数为 `SWOOLE_PROCESS`。
赞
0
回复
2023-07-05
排骨苏
卧槽 这个问题我也是排查了2天,才找到,之前是4.8.5版本 没有问题,后来改了php8然后改了下代码 ,还以为自己代码有问题,各种找原因,最后换了swoole4版本后 问题解决 ,算了 还是用回4吧 ,生产服务器不能折腾
赞
0
回复