首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
websocket连接没有关闭,但是getClientList获取不到问题
### 问题描述 目前服务器通过 netstat -an | grep 9501,明显可以查询到三个客户端连接,但是在server端发送信息的时候,通过$server->getClientList(0, 10),获取到的连接都是随机的,有时候一个连接,有时候两个连接,没有返回全部连接fd表示,请问怎么回事? 例如目前 11 12 13 都有连接状态,期间都没有关闭链接,但是每一次通过getClientList获取到的所有链接信息,每次都是不一样的。 [root@VM_0_6_centos ~]# netstat -an |grep 9501 tcp 0 0 0.0.0.0:9501 0.0.0.0:* LISTEN tcp 0 0 172.17.0.6:9501 1.87.203.57:41623 ESTABLISHED tcp 0 0 172.17.0.6:9501 1.87.203.57:38377 ESTABLISHED tcp 0 0 172.17.0.6:9501 1.87.203.57:38447 ESTABLISHED  ### Swoole版本,PHP版本,以及操作系统版本信息 Swoole 版本 4.4.16 php 版本 7.2.18 系统 centos 7 ### 相关代码 ```php var_dump($server->getClientList(0, 10)); foreach ($data['fromId'] as $key => $value){ if(intval($value)){ $result = $server->push($value, $data['sendData']); var_dump($result); }else{ echo "Client {$value} connect not exist\n"; } } ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 请问如何才能获取到所有的 websocket client 连接fd标识,实现群发消息,不漏消息
发布于5年前 · 0 次浏览 · 来自
提问
phperstar
### 问题描述 目前服务器通过 netstat -an | grep 9501,明显可以查询到三个客户端连接,但是在server端发送信息的时候,通过$server->getClientList(0, 10),获取到的连接都是随机的,有时候一个连接,有时候两个连接,没有返回全部连接fd表示,请问怎么回事? 例如目前 11 12 13 都有连接状态,期间都没有关闭链接,但是每一次通过getClientList获取到的所有链接信息,每次都是不一样的。 [root@VM_0_6_centos ~]# netstat -an |grep 9501 tcp 0 0 0.0.0.0:9501 0.0.0.0:* LISTEN tcp 0 0 172.17.0.6:9501 1.87.203.57:41623 ESTABLISHED tcp 0 0 172.17.0.6:9501 1.87.203.57:38377 ESTABLISHED tcp 0 0 172.17.0.6:9501 1.87.203.57:38447 ESTABLISHED  ### Swoole版本,PHP版本,以及操作系统版本信息 Swoole 版本 4.4.16 php 版本 7.2.18 系统 centos 7 ### 相关代码 ```php var_dump($server->getClientList(0, 10)); foreach ($data['fromId'] as $key => $value){ if(intval($value)){ $result = $server->push($value, $data['sendData']); var_dump($result); }else{ echo "Client {$value} connect not exist\n"; } } ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 请问如何才能获取到所有的 websocket client 连接fd标识,实现群发消息,不漏消息
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2020-11-20
鲁飞
请使用最新版本复现问题。我使用v4.5.7未复现
赞
0
回复
2020-11-20
phperstar
回复
鲁飞
感谢解答,我下午先升级验证一下
赞
0
回复
2020-11-20
phperstar
回复
鲁飞
已经升级到最新版本. 问题依旧,新的websocket链接进来,老的连接获取不到,是否是因为WSS模式导致的bug. 最新测试结果: 改成 SWOOLE_PROCESS 模式,好像没这个问题了。不知道是否是这个原因导致  2连接全程未关闭,中途会出现新链接进来获取不到链接情况 
赞
0
回复
2020-11-21
鲁飞
回复
phperstar
使用swoole原生代码,提供最简复现代码给我
赞
0
回复