2017-09-21 5 views
0

私はPubNubチャンネルに接続してイベントを待ち受けるタブを開いているプロジェクトに取り組んでいます。これらの開いているタブは、管理タブに表示されるので、ユーザーは接続されているすべてのタブを見ることができます。現在、私たちはその存在を利用して誰が接続されているかを確認しており、参加、退室、およびタイムアウト・メッセージを示すメッセージも発します。ウェブワーカーなどがウィンドウを閉じるイベントを処理できますか?

ユーザーがタブを閉じるだけで、チャンネルへの登録解除メッセージを送信できないため、PubNubがその接続でタイムアウトを呼び出して管理タブからタイムアウトするまで待つ必要があります。私は、彼らのハートビートオプションをもっと短くするように微調整しましたが、それらの接続が閉じられると、それを2番目のものにするのは本当にうれしいでしょう。

私の考えは、Web Workerやそれに類似したもので、単純に登録解除メッセージを送信するようにしてもよいと思っていましたが、親ページそれが生まれたのは閉じられた?

このようなやり方があるのでしょうか、タイムアウトが有効になり、タイムアウトが発生するまで待つだけでマネージャータブを処理するのがベストですか?

+1

WebWorkerはオプションですが、ブラウザに依存します。ブラウザの依存関係を心配していない場合は、ブラウザのsendBeaconまたはonbeforeunloadイベントをサポートするだけで、登録解除を行うことができます。しかし、PubNubキーのPresenceアドオンでTCP_FINを有効にすると、タブがアンロードされたときにLeaveイベントが送信されます。あなたが多数のチャンネルを購読している場合は、ページアンロードのパフォーマンスに問題が生じる可能性があるので注意してください。これが有用で、さらに質問がある場合はお知らせください。 –

+0

@CraigConoverそれは素晴らしいです!私はそれが何をしたのか分からなかった!ありがとうございました! – Jordan

+0

私は何をしたか分かりませんが - 美しい!これはあなたを幸せにしてくれてうれしいです)公式の答えとして私のコメントを追加する。 –

答えて

0

PubNubとブラウザウィンドウ/タブを閉じるイベント

WebWorkerはオプションであるかもしれないが、それは非常にブラウザに依存しています。ブラウザの依存関係を心配していない場合は、ブラウザのsendBeaconまたはonbeforeunloadイベントをサポートするだけで、登録解除を行うことができます。

しかし、TCP_FINをプレゼンスアドオンでPubNubキーに有効にすると、タブがアンロードされたときに終了イベントが送信されます。しかし、これはブロッキングコールであるため、多くのチャンネルを購読している場合、ページアンロードのパフォーマンスに問題が生じる可能性があるので注意してください。

関連する問題