【发布时间】:2017-03-15 22:03:13
【问题描述】:
在 websockets 的服务器端已经有一个 ping/pong 实现,服务器发送一个 ping,客户端用一个 pong 回复,让服务器节点不管客户端是否连接。但是没有反向实现让客户端知道服务器是否仍然连接到它们。
我读过有两种方法可以解决这个问题:
- 每个客户端每隔 x 秒和任何时间向服务器发送一条消息 发送时抛出错误,这意味着服务器已关闭,所以 重新连接。
- 服务器每 x 秒向每个客户端发送一条消息,客户端接收此消息并更新客户端上的变量,在客户端,您有一个线程每隔 x 秒不断检查该变量是否已更改,如果它有一段时间没有,则表示它没有收到来自服务器的消息,您可以假设服务器已关闭,因此重新建立连接。
您可以尝试使用任一方法在客户端确定服务器是否仍然在线。第一个您将向服务器发送流量,而第二个您将从服务器发送流量。两者似乎都很容易实施,但我不太确定哪种方式更高效/更具成本效益。
【问题讨论】:
标签: node.js websocket client-server