如何立即知道与 Socket.IO 的连接是否丢失?

How to immediately know if connection is lost with Socket.IO?

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

所以我使用 SocketIO,当 BBB 检测到某些东西时我会发出信号。我使用我在 "disconnect" 事件上设置为 false 的标志变量 isConnected,如果 isConnected 为 false,我不会发送到服务器,只是写入数据库。

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

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

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