我正在开发一个项目,其中包括用NodeJs编写的BeagleBoneBlack和Web服务器。我们的想法是,当Beaglebone从环境中检测到某些东西时会将其发送到Web服务器,如果由于某种原因连接丢失,BBB会将该日志存储在其自己的数据库中。
所以我使用SocketIO,当BBB检测到某些东西时我会发出声音。我使用标志变量isConnected,我把它放在"断开" event,如果isConnected为false,我不会向服务器发送,只是在数据库中写入。
问题是当服务器运行的计算机进入休眠状态(模拟丢失的连接)时,SocketIo有时需要超过一分钟才能检测到连接丢失,并发出断开连接事件。是否有任何方法可以更快地获取此信息,因为程序尝试将读数发送到服务器并且不能,但它不是写在数据库中。
答案 0 :(得分:1)
客户端可能每5秒(或更频繁地)发出myping
并从服务器接收mypong
,确认服务器正在运行。
...或者服务器可以发送接收数据的确认,客户端会尝试重新发送数据,直到收到确认为止。