2012-02-08 8 views
1

ユーザーがアプリケーションにログインするたびにソケット接続が作成されます。つまり、同じブラウザウィンドウ内で新しいタブを開くと、ブラウザタブごとに複数のソケット接続が確立されます。 これらのタブを閉じると問題が発生します。一貫性のない/インバウンドサービスの切断が呼び出されます。 これは、いくつかの接続/切断が呼び出されていないことを意味し、一部は呼び出されています。これを一貫して再現することはできません(ときどき、切断/切断することはありません)。ChromeとFFでタブが閉じられたときにチャンネルAPI /切断インバウンドサービスが呼び出されない

特定のチャネルのために作成された(データストアに保存されている)一時的なオブジェクトをクリーンアップするために/ disconnectを使用しているため、/ disconnectが呼び出されないすべてのOpenChannelオブジェクトが残っています。

これはChromeとFireFoxで発生し、IEでは発生しません。 APIを正しく使用していますか?タブではなくブラウザウィンドウごとに1つのソケット接続が存在するはずですか?これはその後、ケースをされた場合、我々はクッキーにトークンを格納する場合(、クライアントIDごとに2つの接続として?私たちは、このトークンとの接続を再確立このカウントにはないでしょうか?

感謝。

答えて

1

開く場合たとえば、user.user_id()をクライアントIDとして使用していて、同じユーザーが3つのタブを開いている場合、おそらく各タブの新しいトークンを作成した場合でも、これらのタブの1つに/切断されたコールバックを追加します。

+0

いいえ、それぞれのタブは独自のクライアントIDを生成して接続を確立します。あなたのコメントはそうではありません。 – Mayumi

+0

さて、良い。切断通知を受信する(または受信しない)までどれくらい待っていますか?場合によっては、クライアントの閉鎖後に最大10分かかります。 –

+0

返信いただきありがとうございます。基本的には、切断が決して呼び出されないOpenChannelオブジェクト(チャンネルが接続されたときに作成される)がすべてあります。 – Mayumi

関連する問題