0

ActiveMQ の Websocket チャット デモ (http://localhost:8161/demo/websocket/) を試しているときに、すべてのメッセージが 2 つの異なるブラウザー インスタンス間で送信されるわけではないようです。何らかの理由で、2 つおきのメッセージのみがブラウザの 1 つに送信されます。

誰もこれについて説明がありますか?これは私が設定する必要があるものですか?

編集:おそらく、デフォルトのセットアップでワイヤプロトコルとしてstompを使用することを追加する必要があります(Webソケットを使用するように構成ファイルを変更しただけです)。

Edit2: http://www.jmesnil.net/stomp-websocket/doc/に示されている例に従っても、動作に違いは見つかりませんでした。ただし、興味深い効果に気付きました。クライアントの 3 つのインスタンスを使用すると、最初のメッセージが送信クライアントで受信され、2 番目のメッセージが 2 番目のクライアントで受信され (他のクライアントでは受信されません)、3 番目のメッセージが受信されたことがわかりました。 3番目のクライアントで。すべてのクライアントが同時にメッセージを受け取ると思っていたでしょう。

4

1 に答える 1

1

問題の原因がわかりました。私が使用した例では、クライアントはトピック ('/queue/test') ではなく、キューにサブスクライブしています。トピックの使用は期待どおりに機能します (パブリッシュ-サブスクライブ パターン)。キューを使用していたときに、メッセージがクライアントによってキューに入れられ、他のクライアントによって取得された (そしてすぐに消費された) と思います。

于 2012-09-29T04:29:09.217 に答える