2014-09-04 126 views
1

我們在我們的Web應用程序中使用了tomcat websocket實現。消息通過websockets從服務器推送到客戶端。間歇性連接斷開或網絡切換但仍連接Web應用程序時,不會推送Web套接字消息。當間歇性網絡丟失或網絡交換時,Websockets斷開連接

讓說,例如我連接到局域網和登錄的應用程序,現在我通過WiFi連接後,無線連接成功我斷開局域網與第二個網絡的一小部分從局域網切換到WiFi但在此消息未被推動從服務器到客戶端通過websockets。

經過網絡切換後,如果我檢查websocket(readyState)的狀態,它表示1表示websocket連接打開但實際上不打開。

任何人都可以提前面對這個問題,並提供您的建議。

謝謝

回答

1

您必須創建一個連接丟失檢測機制。 WebSocket協議具有ping/pong幀,但我不知道Tomcat是否具有該功能。在某些Webscoket框架中,您可以定義一個超時間隔,並且服務器將定期ping客戶端,如果客戶端錯過一些話筒就會斷開連接。

如果該功能不是由Tomcat提供的,那麼您仍然可以創建自己的功能。只需定義一種特殊類型的消息並從客戶端重複給服務器。如果您一段時間沒有收到任何消息,請斷開連接。