0

当我尝试 ActiveMQ (http://localhost:8161/demo/websocket/) 的 websocket 聊天演示时,似乎并非所有消息都在两个不同的浏览器实例之间传输。出于某种原因,只有每第二条消息都会发送到其中一个浏览器。

有人对此有解释吗?这是我需要配置的东西吗?

编辑:也许我应该补充一点,我使用 stomp 作为默认设置的有线协议(只是将配置文件更改为使用 websockets)。

Edit2:按照http://www.jmesnil.net/stomp-websocket/doc/给出的示例时,我找不到任何行为差异。但是,我注意到一个有趣的效果:当使用 3 个客户端实例时,我可以观察到发送客户端收到了第一条消息,第二个客户端(而不是其他任何一个)收到了第二条消息,并且收到了第三条消息在第三个客户端。我原以为所有客户端都会同时收到消息。

4

1 回答 1

1

我发现了导致问题的原因:在我使用的示例中,客户端订阅了一个队列,而不是一个主题('/queue/test')。使用主题按我的预期工作(发布-订阅模式)。我猜当它使用队列时,消息被客户端放入队列并被任何其他客户端拾取(并立即被消费)。

于 2012-09-29T04:29:09.217 回答