我有一个在浏览器中运行的webapp。该webapp连接到使用websockets的服务器。所以服务器和我的客户端/浏览器之间的通信基于websockets。如果服务器上发生了一些魔术事件,某些Web服务会向我的webapp发送一个新的XML / JSON,并显示新数据。
但是,作为客户端/浏览器,我如何知道连接是否仍处于活动状态?假设我在大约30秒内没有获得任何新的XML。我怎么知道连接是关闭/中断/服务器离线还是一切正常,但在服务器上本身没有发生新的魔术事件。
答案 0 :(得分:24)
websocket连接对象有一个readyState
字段,可以告诉您连接是否仍处于活动状态(from the dart documentation)。 readyState可以是
0 - connection not yet established
1 - conncetion established
2 - in closing handshake
3 - connection closed or could not open
如果您要处理这些事件(尝试重新连接等),您还可以为websocket close
事件定义事件处理程序。
答案 1 :(得分:19)
3种方式: