ブラウザで実行されているwebappがあります。そのwebappは、websocketを使用するサーバーに接続されています。したがって、サーバーとクライアント/ブラウザ間の通信は、WebSocketに基づいています。サーバーで何らかのマジックイベントが発生した場合、一部のWebサービスが新しいXML/JSONを私のWebアプリケーションに送信し、新しいデータが表示されます。
しかし、クライアント/ブラウザとして、接続がまだ生きているかどうかをどうやって知るのですか?約30秒間新しいXMLを取得しないとしましょう。接続が閉じているか、切断されているか、サーバーがオフラインであるか、またはすべてが正常であるかをサーバーで確認した場合、新しいマジックイベントは発生しませんでした。
3つの方法:
WebSocket接続オブジェクトにはreadyState
フィールドがあり、接続がまだアクティブであるかどうかを通知します (Dartドキュメントから) 。 readyStateは次のいずれかです。
0 - connection not yet established
1 - conncetion established
2 - in closing handshake
3 - connection closed or could not open
これが処理したい場合(再接続など)、websocket close
イベントのイベントハンドラーを定義することもできます。