http バインディングと ejabberd を使用して、Web ベースのインスタント メッセージング/チャット機能を実装しました。怠け者のために、私の質問の短いバージョンを次に示します。
複数のブラウザ ウィンドウに同時に表示できる Web ベースの XMPP チャット クライアントを実装するにはどうすればよいでしょうか。それぞれが開いているチャットの同一のビューを表示します。
気にする人のためのより詳細なとりとめ:
考えられる解決策の 1 つは、すべてのタブが独自の接続を管理できるようにすることです。XMPP は複数のクライアントを適切にサポートしているため、ルーティングは XMPP に任せてください。このソリューションには少なくとも 2 つの問題があります。1 は、これが引き起こす帯域幅消費の明らかな増加です。2 は、ejabberd で MUC ルームに接続するために、同じ JID を持つ複数のクライアントが現在サポートされていないことです。これは 3.1 で実装されるようですが、現状では私にとって大きな問題です。
最初は、フラッシュ マジックが関係しているのではないかと思っていましたが、ページの SWF は通知の効果音を再生するためだけに使用されているようです。これは、firebug などを使用して埋め込みタグを削除することで確認できます。チャット機能は引き続き機能します。
これにより、基本的に、タブ間で共有する唯一の方法として Cookie が残ります。このシナリオでは、マスター タブはすべてのメッセージを他のタブからポーリングできる Cookie にダンプします。待ち時間を避けるためにポーリング頻度を非常に高くする必要があるため、これは非常にばかげているように思えます。「マスター」ウィンドウを閉じるとどうなりますか?
私はこれが複数のサイトで行われているのを見てきました.通常、これらの問題を見ると、少なくともぼんやりと理解できますが、これが私を困惑させたことを認めてもかまいません.