2016-05-24 9 views
2

Socket.IOタイムアウト(切断)は、ソケットにアクティビティが存在しない場合に発生しますが、アクティビティがどのように検出されますか?私はそれについての情報を見つけることはできません。検出プロセスはどのように機能しますか?例: ユーザーがWebサイトタブを閉じると、接続が切断されますか? ユーザーが接続を失い、切断が実行されないことがありますか? キャッシュ情報は、私がウェブサイトから退出してもオンラインであることを知らせる可能性がありますか?socket.io disconnectはどのように機能しますか?

答えて

1

ネットワークパネルでブラウザのデベロッパーツールを開くと、リクエストをwsリクエスト(Webソケットリクエスト)にフィルタすることができます。そこにアクティブなウェブソケット接続が表示されます。 1つの接続を選択すると、ヘッダー、フレーム、Cookie、およびタイミングが表示されます。フレームオプションを選択すると、ブラウザとWebソケットサーバーの間で送受信される内容を確認できます。

次の画像は、それがChromeの開発ツールです、あなたのためにそれを明確にします:

Chrome developer tools

今そこにあなたには、いくつかの数字がある見ることができるが、基本的には、ブラウザとサーバーは、ピンポンをしています。これらの数字の詳細については、この回答を参照してください。SocketIO Chrome Inspector Frames

このピンポンは、タイムアウトがないことを知っているソケットです。接続解除と接続に関しては、WebSockets APIについてもっと読むことをお勧めします。そこには、onclose、onerror、onmessage、onopenのイベントリスナーがあります。例えば

:ユーザーがウェブサイトのタブを閉じると、切断を発生

だからこの質問に答えますか?そこにある は、ユーザーが接続を失って接続が切断されることはありませんか?

いいえ、oncloseイベントは発生しますが、oncloseが発生しなかった宇宙的な理由があっても、結局はタイムアウトにより切断されます。

あなたの他の質問については:キャッシュ情報は、私が ウェブサイトを離れても、Imは、オンラインことを通知

は可能ですか?

はい、これはソケットまでではありません。それはあなたとあなたの実装次第です。オンラインユーザーのリストを保持し、そのリストのみを時折更新することができます(10分とします)。オンラインユーザー一覧を保持することができます。また、オンラインユーザーリストを更新する時点までに、一部のユーザーは既に切断されています。

+0

返信いただきありがとうございました。 – Darm0ka

関連する問題