如何使用CometD向频道的所有Javascript订阅者发布消息?



给定一个使用CometD的Java web应用程序,如何在bayeux每次处理消息时向通道的所有订阅者发布消息?

对于测试,我使用serverSession.deliver(serverSession, "/test-channel", map, null);

结果是我的Javascript客户端将成功订阅,但是每10次尝试中只接收1次消息。因此,90%的情况下,浏览器不会接收到任何消息,但Bayeux日志记录(级别3)显示它们每次都被发送到正确的通道。

我应该使用某种形式的客户端会话吗?CometD文档似乎有点不清楚

使用localSession似乎是答案。我实现这个来修复:

ClientSessionChannel channel = localSession.getChannel(getClientChannel());
channel.publish(map);

客户端现在正在接收所有消息

相关内容

  • 没有找到相关文章

最新更新