如何立即知道 Socket.IO 是否失去连接



我正在做一个项目,其中包括用NodeJs编写的BeagleBoneBlack和Web服务器。这个想法是,当Beaglebone检测到环境中的某些内容时,将其发送到Web服务器,如果由于某种原因连接丢失,BBB会将日志存储在自己的数据库中。

所以我使用SocketIO,当BBB检测到某些东西时,我会发出。我使用标志变量isConnected,我在"断开连接"事件上将其放在false上,如果isConnected为false,则我不向服务器发送,只是写入数据库。

问题是,当运行服务器的计算机进入睡眠状态(模拟失去连接)时,SocketIo 有时需要一分钟以上才能检测到连接丢失,并发出断开连接事件。有没有办法更快地获取此信息,因为程序尝试将读数发送到服务器但无法,但它没有写入数据库。

客户端可能每 5 秒(或更频繁)发出一次myping,并从服务器接收mypong,确认服务器正在工作。

。或者服务器可以发送接收数据的确认,客户端尝试重新发送数据,直到收到确认。

最新更新