2009-06-12 11 views
0

インラインチャットを作成しようとしています。私のサイトの2つのウィンドウが開いているときに問題が発生します。そのため、私のスクリプトは新しいメッセージをリクエストしたウィンドウに送ります(単純なポーリングを使用している間は、後で彗星に移動します)。複数のブラウザのWindows同期

私は考えていない良いテクニックがあるので、両方のブラウザウィンドウにメッセージを送信できますか?現在、私は読んでフラグを使用しているので、メッセージが1つのウィンドウに配信されるとすぐに、それは読まれたものとしてマークされます。したがって、他のウィンドウに配信されることはありません。この問題をどうやって解決するのですか?

ありがとうございます。

答えて

1

私が考えることの1つは、「読み取り」フラグではなく、メッセージに何らかの種類のタイムスタンプを使用することです。

この方法では、新しいメッセージのページリクエスト(新しいメッセージのためにサーバーをプールするためにある種のタイミングを使用していると仮定しています)が最後に取得したタイムスタンプを送信した後、その時点以降のすべてのメッセージ

0

各ウィンドウは個別の「サブスクライバ」である必要があり、サーバは各サブスクライバにメッセージを送信する必要があります。したがって、1つの "read"フラグの代わりに、各サブスクライバに対して "read"フラグが必要です。

残念ながら、これは、各サブスクライバのキューを持つサブスクライバマネージャを作成することと、サブスクライバが消えるときを知る方法です(サブスクライバが1分間ポーリングを停止したときなど)。

「Gang of Four」の書籍(「デザインパターン:Gamma、Helm、Johnson and Vlissidesによる再利用可能なオブジェクト指向ソフトウェアの要素」、「Publish-Subscribe」とも呼ばれます) ISBN 0-201-633610-2)またはオンライン。

+0

これは管理するのが本当の苦痛です。 –

関連する問題