cometd bayeux:在页面卸载时正确处理用户断开连接
当前设置:带有 jQuery cometd 插件的 cometD servlet。
假设我有一个简单的聊天室,当前有 2 个用户(userA 和 userB)连接到它。当 userB 离开页面时,我需要通知 userA userB 已离开房间。有没有办法让 userA 知道 userB 离开而不使用 unload
处理程序?
$(窗口).unload(function(){
/** 让我们通知其他用户 currentUserId 离开了 **/});
经过大量测试后;上面的代码块不可靠。
我能想到的唯一解决方案是使用 setInterval,其中每隔 1 分钟,管理员将循环访问一组已连接的用户,然后“ping”它们以检查它们是否仍然连接。
有什么想法吗?我应该使用 setInterval 轮询技术吗?
Current setup: cometD servlet with jQuery cometd plugin.
Let's say i have a simple chat room that currently has 2 users (userA and userB) connected to it. When userB navigates away from the page, I need userA to be notified that userB has left the room. Is there a way to let userA know that userB left without using the unload
handler?
$(window).unload(function(){
/** lets notify other users that currentUserId left **/});
After conducting lots of tests; the above code block is not reliable.
The only solution i can think of is using a setInterval where every 1 minute, the admin will loop through an array of connected user, then "pings" them to check whether or not they're still connected.
Any ideas? Should i use the setInterval polling technique?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于这个有兴趣的人。
当服务器使用户会话过期时,您可以注册“removeListener”方法。
完整代码示例:
ChatService.java#handleMembership
For this who are interested.
You can register a "removeListener" method when a server expires a user's session.
Full code example:
ChatService.java#handleMembership
是的,我知道这个问题很老了,但为什么不简单地使用 PresenceListener 呢?
Yes I know this question is old, but why not simply using the PresenceListener?