现在有一个报警设备,在一定条件下才会发送报警信息(不满足条件不会发信息),用workerman接收报警信息,但是我该怎么判断这个设备是否掉线呢?请各位大神给个思路 谢谢!

守护
2124 3 0
3个回答

walkor

掉线会触发onclose回调,在onclose里写入数据数据库或者某个存储标记设备下线了

  • 守护 2019-04-29

    我给这个设备直接断电,也没有触发onClose回调,我用tcp测试工具测试连接断开都会触发onClose回调,就是这个设备不行,,,

walkor

用心跳来检测断网、断电等情况的下线。
 
workerman心跳文档
http://doc.workerman.net/faq/heartbeat.html 
 
gatewayWorker心跳文档
http://doc2.workerman.net/heartbeat.html

  • 守护 2019-04-29

    这个检测水压的设备不会自己发送心跳数据,只有水压达到某个临界值的时候才会发送一条报文数据到服务器,这样设置心跳的话,如果一分钟或者几十分钟它没有发送数据,服务器会把它认为掉线了吧,实际上它还在线只是没有发数据。这样还能用心跳检测吗?

walkor

长连接应用必须要用心跳来保持连接,否则一些路由节点会因为连接长时间不活跃被关闭,导致连接异常断开,导致设备和服务器无法通讯。
 

  • bbs3819881 2019-07-24

    大佬,我的判断没有办法执行时什么情况。就是判断时间间隔55秒后断开链接哪里,到了时间也不去执行if里面的操作

年代过于久远,无法发表回答
🔝