我怎么知道,如果连接还活着使用WebSockets?(How do i know if connec

2019-06-26 18:13发布

我有一个web应用程序,这是在浏览器中运行。 即web应用被连接到一个服务器,它使用的WebSockets。 因此,服务器和我的客户之间的通信/浏览器是基于WebSockets的。 如果服务器上发生一些神奇的事件,一些Web服务发送一个新的XML / JSON我的web应用程序和新的数据被显示。

但我怎么,作为客户端/浏览器,知道如果连接STIL还活着吗? 可以说,我没有得到任何新的XML约30秒。 我怎么会知道,如果连接被关闭/破/服务器脱机或一切都很好,但服务器自己在没有新的魔法事件发生。

Answer 1:

3种方式:

  • 依靠TCP检测连接丢失,这将最终在JS onClose事件会弹出
  • 从服务器发送的WebSocket坪..浏览器将与WS pongs回复,连接丢失可能是更有力也检测到客户端
  • 从浏览器发送应用级别的心跳到服务器,服务器需要有逻辑来回答。 你无法从浏览器触发WS坪(在JS)


Answer 2:

一个WebSocket连接对象有一个readyState领域,这将告诉你,如果连接仍然有效(从镖文档) 。 readyState的可以是

0 - connection not yet established
1 - conncetion established
2 - in closing handshake
3 - connection closed or could not open

您也可以定义WebSocket的事件处理程序close ,如果这是你想处理(尝试重新连接,等等)事件。



文章来源: How do i know if connection is alive with websockets?