当我尝试使用ActiveMQ的websocket聊天演示(http:// localhost:8161 / demo / websocket /)时,似乎并非所有消息都在两个不同的浏览器实例之间传输。出于某种原因,只有每个第二条消息都被发送到其中一个浏览器。
有没有人对此有解释?这是我需要配置的吗?
编辑:也许我应该补充一点,我使用stomp作为有线协议和默认设置(只是更改了配置文件以使用websockets)。
Edit2:在遵循http://www.jmesnil.net/stomp-websocket/doc/给出的示例时,我发现行为没有任何差异。但是,我注意到一个有趣的效果:当使用3个客户端实例时,我可以观察到第一个消息是在发送客户端上收到的,第二个消息是在第二个客户端上(而不是任何其他客户端),第三个消息是在第三个客户端。我原以为所有客户都会同时收到这条消息。
答案 0 :(得分:1)
我发现了导致问题的原因:在我使用的示例中,客户端订阅了一个队列,而不是一个主题('/ queue / test')。使用主题按预期工作(发布 - 订阅模式)。我猜当它正在使用队列时,消息被客户端放入队列并被任何其他客户端接收(并立即被消费)。