如何检测套接字中的网络故障 Node.js

How to detect network failure in sockets Node.js

我正在尝试编写内部传输系统。 数据应使用网络套接字从客户端传输到服务器。 除了处理网络问题外,它工作正常。 如果我在客户端和服务器之间放置防火墙,那么双方都不会看到任何错误,因此数据将继续填充客户端的内核缓冲区。 如果我在这一刻重新启动应用程序,我将丢失缓冲区中的所有数据。

问题: 我们有什么方法可以检测网络问题吗? 我们有办法从内核缓冲区取回数据吗?

Node js 非常直接地向您公开低级套接字api。我假设您正在使用 TCP 套接字发送和接收数据。

确保客户端和服务器之间存在活动连接的一种方法是来回发送心跳信号。如果在发送数据的过程中没有收到服务器的心跳,可以认为是连接失败。

至于你问题的第二部分:没有简单的方法从内核缓冲区取回数据。如果丢失数据会成为问题,我会确保将其写入磁盘。