【问题标题】:How to immediately know if connection is lost with Socket.IO?如何立即知道与 Socket.IO 的连接是否丢失?
【发布时间】:2016-10-08 13:07:32
【问题描述】:

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

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

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

【问题讨论】:

    标签: node.js socket.io server client


    【解决方案1】:

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

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

    【讨论】:

    • 是的,我有类似的想法,但我不是很有经验,所以我不知道是否有更好的方法来做到这一点。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 2019-09-07
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 2012-08-26
    相关资源
    最近更新 更多