私はPubNubチャンネルに接続してイベントを待ち受けるタブを開いているプロジェクトに取り組んでいます。これらの開いているタブは、管理タブに表示されるので、ユーザーは接続されているすべてのタブを見ることができます。現在、私たちはその存在を利用して誰が接続されているかを確認しており、参加、退室、およびタイムアウト・メッセージを示すメッセージも発します。ウェブワーカーなどがウィンドウを閉じるイベントを処理できますか?
ユーザーがタブを閉じるだけで、チャンネルへの登録解除メッセージを送信できないため、PubNubがその接続でタイムアウトを呼び出して管理タブからタイムアウトするまで待つ必要があります。私は、彼らのハートビートオプションをもっと短くするように微調整しましたが、それらの接続が閉じられると、それを2番目のものにするのは本当にうれしいでしょう。
私の考えは、Web Workerやそれに類似したもので、単純に登録解除メッセージを送信するようにしてもよいと思っていましたが、親ページそれが生まれたのは閉じられた?
このようなやり方があるのでしょうか、タイムアウトが有効になり、タイムアウトが発生するまで待つだけでマネージャータブを処理するのがベストですか?
WebWorkerはオプションですが、ブラウザに依存します。ブラウザの依存関係を心配していない場合は、ブラウザのsendBeaconまたはonbeforeunloadイベントをサポートするだけで、登録解除を行うことができます。しかし、PubNubキーのPresenceアドオンでTCP_FINを有効にすると、タブがアンロードされたときにLeaveイベントが送信されます。あなたが多数のチャンネルを購読している場合は、ページアンロードのパフォーマンスに問題が生じる可能性があるので注意してください。これが有用で、さらに質問がある場合はお知らせください。 –
@CraigConoverそれは素晴らしいです!私はそれが何をしたのか分からなかった!ありがとうございました! – Jordan
私は何をしたか分かりませんが - 美しい!これはあなたを幸せにしてくれてうれしいです)公式の答えとして私のコメントを追加する。 –