質問

私はアーランと彗星のチャットをしています。私は、メッセージ輸送のための1つのコネクション(ロングポーリング)を使用します。あなたが知っているようしかし、ロングポーリング接続は、すべての時間の接続を維持することはできません。新しいメッセージが来るか、タイムアウトに達するたびに、それが壊れてから、再度サーバーに接続します。メッセージは、接続する前に送信された場合は、チャットの整合性を維持するための問題であり、再接続します。

そして、ユーザが彗星チャットで複数のウィンドウを開いた場合も、すべてのチャットメッセージは、ユーザーがロングポーリング接続がたくさんあることを意味しており、同期を維持する必要があります。だから、時間に配信すべてのメッセージを維持することは困難である。

私はすべての接続のためのメッセージ・キューを作成すべきでしょうか?それとも他に何この問題を解決するためのより良い方法はありますか?

役に立ちましたか?

解決

私にとっては(一つでもチャットウィンドウよりも多くを持っている)チャットに接続しているユーザごとに一つのプロセス/メッセージキューを持ってする最も簡単な方法です。再接続チャットウィンドウアプリケーションで、いつ最後のメッセージのタイムスタンプを追跡するよりも、このタイムスタンプの後にメッセージをお願いします。メッセージ・キュー・プロセスは、唯一の合理的な時間間隔のメッセージを保持しなければなりません。このシナリオでは、再接続は、すべてのクライアント次第です。別のシナリオでは、HARTのいくつかの並べ替えを送信することができ、サーバから打つが、それは私のために信頼性が低いと思われます。これは、タイムアウトよりも断線の他の理由で問題が解決されていません。クライアントごとに1つのキューとしてキューイングサーバ側の多くのバリエーションがあたり...

、チャットルームごとに、ユーザーごとにありますが、
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top