如何使用 CometD 向频道的所有 Javascript 订阅者发布消息?
给定一个使用 CometD 的 Java Web 应用程序,每次 bayeux 处理消息时,如何向所有频道的订阅者发布消息?
为了进行测试,我使用了 serverSession.deliver(serverSession, "/test-channel", map, null);
。
结果是我的 Javascript 客户端将成功订阅,但 10 次尝试中仅收到 1 次消息。因此,90% 的情况下,浏览器不会收到任何消息,但 Bayeux 日志记录(级别 3)显示它们每次都被发送到正确的通道。
我应该使用某种形式的客户端会话吗? CometD 文档似乎有点不清楚。
Given a Java web application using CometD, how can I publish a message to all of a channel's subscribers each time a message is processed by bayeux?
For testing, I used serverSession.deliver(serverSession, "/test-channel", map, null);
.
The result is that my Javascript client will subscribe successfully, but only receive messages 1 out of 10 tries. So, 90% of the time, no messages are ever received by the browser, yet the Bayeux logging (level 3) shows that they are being sent to the correct channel every time.
Should I be using some form of a client session? The CometD documentation appears to be a bit unclear.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
localSession
似乎是答案。我实现这个是为了修复:客户端现在正在接收所有消息。
Using the
localSession
seems to be the answer. I implemented this to fix:The clients are now receiving all messages.