首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
Websocket服务运行一段时间后,订阅的Redis消息收不到了,重启后正常
### 问题描述 我是用Swoole做Websocket服务器,添加一个新的进程订阅Redis,运行一段时间后,Websocket还可以正常连接,Redis订阅的消息收不到了,重启后正常. ### Swoole版本,PHP版本,以及操作系统版本信息 PHP版本信息 ``` Version=> 7.4.3 ``` Swoole版本信息 ``` Version => 4.7.1 coroutine => enabled with boost asm context epoll => enabled eventfd => enabled signalfd => enabled cpu_affinity => enabled spinlock => enabled rwlock => enabled pcre => enabled mutex_timedlock => enabled pthread_barrier => enabled futex => enabled async_redis => enabled ``` ### 相关代码 ```php $server = new \Swoole\WebSocket\Server('0.0.0.0','8080'); $process = new \Swoole\Process(function () use ($server) { Redis::subscribe(['order_channel'], function ($message) use ($server) { echo '收到新的订单消息'.PHP_EOL; }); }); $server->addProcess($process); //连接成功回调 $server->on('open', function (\Swoole\WebSocket\Server $server, $request) { echo '连接成功'.$request->fd.PHP_EOL; }); //收到消息回调 $server->on('message', function (\Swoole\WebSocket\Server $server, $request) { echo '收到消息'.$request->fd.PHP_EOL; }); //关闭连接回调 $server->on('close', function (\Swoole\WebSocket\Server $server, $request) { echo '已关闭'.$request->fd.PHP_EOL; }); $server->start(); ```
发布于4年前 · 13 次浏览 · 来自
提问
Shenhai
### 问题描述 我是用Swoole做Websocket服务器,添加一个新的进程订阅Redis,运行一段时间后,Websocket还可以正常连接,Redis订阅的消息收不到了,重启后正常. ### Swoole版本,PHP版本,以及操作系统版本信息 PHP版本信息 ``` Version=> 7.4.3 ``` Swoole版本信息 ``` Version => 4.7.1 coroutine => enabled with boost asm context epoll => enabled eventfd => enabled signalfd => enabled cpu_affinity => enabled spinlock => enabled rwlock => enabled pcre => enabled mutex_timedlock => enabled pthread_barrier => enabled futex => enabled async_redis => enabled ``` ### 相关代码 ```php $server = new \Swoole\WebSocket\Server('0.0.0.0','8080'); $process = new \Swoole\Process(function () use ($server) { Redis::subscribe(['order_channel'], function ($message) use ($server) { echo '收到新的订单消息'.PHP_EOL; }); }); $server->addProcess($process); //连接成功回调 $server->on('open', function (\Swoole\WebSocket\Server $server, $request) { echo '连接成功'.$request->fd.PHP_EOL; }); //收到消息回调 $server->on('message', function (\Swoole\WebSocket\Server $server, $request) { echo '收到消息'.$request->fd.PHP_EOL; }); //关闭连接回调 $server->on('close', function (\Swoole\WebSocket\Server $server, $request) { echo '已关闭'.$request->fd.PHP_EOL; }); $server->start(); ```
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
还没有评论!