设备一段时间后连接client_id丢失

青衣水锈

有7000多的设备通过长链连接,后台会统计在线的设备数据,发现这个数刷新时经常会变小,具体原因还在排查,也希望能提供排查思路。
getClientSessionsByGroup获取所有值再count也一样。
详细:
假如我们叫他 A设备 连接后,会有ping-pong的心跳,开始也没有问题,可以下发控制等各种操作没有问题,但过了一段时间后,可能是6个小时以上,后台无法检测到A设备,然后从设备上打日志查看发现,A设备仍然能收到服务器的ping,且在回复pong,证明连接通道并没有断开,但在后端无论用什么方法都获取不到client_id和session数据,主要是通过Gateway中间件,在哪一台服务器上都无法获取。
架构:分布式,一台主register,
1.后端通过Gateway.class.php下发指令。
2.设备连接通过workerman返回的client_id后post到后端,后端通过Gateway网关进行绑定、加入组、存入session。
由于是业务服务,暂时无法在线上打印log,请提供解决思路,感谢。

2210 3 0
3个回答

six

说明有设备没连上服务端吧

  • 青衣水锈 2021-08-25

    确认已经连上了,初始连上后,会下发各种指令给设备,都没有问题。

青衣水锈

现在每天实时在线设备有7000左右,也有会几十台设备出现这样的问题(30-70台左右)。

  • 暂无评论
dignfei

定时ping。
客户端设置断线重连

  • 暂无评论
年代过于久远,无法发表回答
🔝