cometd bayeux:在页面卸载时正确处理用户断开连接

cometd bayeux:在页面卸载时正确处理用户断开连接,cometd,Cometd,当前设置:带有jQuery Comed插件的Comed servlet 假设我有一个简单的聊天室,目前有两个用户(userA和userB)连接到它。当userB离开页面时,我需要通知userA userB已经离开了房间。有没有办法让userA知道userB离开时没有使用unload处理程序 $(窗口).unload(函数(){ /**让我们通知其他用户currentUserId已离开**/ })) 经过大量试验后,;上述代码块不可靠 我能想到的唯一解决方案是使用setInterval,每1分钟,

当前设置:带有jQuery Comed插件的Comed servlet

假设我有一个简单的聊天室,目前有两个用户(userA和userB)连接到它。当userB离开页面时,我需要通知userA userB已经离开了房间。有没有办法让userA知道userB离开时没有使用
unload
处理程序

$(窗口).unload(函数(){
/**让我们通知其他用户currentUserId已离开**/

}))

经过大量试验后,;上述代码块不可靠

我能想到的唯一解决方案是使用setInterval,每1分钟,管理员将循环通过一组连接的用户,然后“ping”它们以检查它们是否仍然连接


有什么想法吗?我应该使用setInterval轮询技术吗?

对于对此感兴趣的人

当服务器使用户会话过期时,可以注册“removeListener”方法

    client.addListener(new ServerSession.RemoveListener() {
        public void removed(ServerSession session, boolean timeout){
            members.values().remove(session.getId());
            broadcastMembers(members.keySet());
        }
    });
完整代码示例:

是的,我知道这个问题很老,但为什么不简单地使用PresenceListener?

你好,ryan。我也遇到了同样的问题,奇怪的是Comet库一开始并没有解决这个问题。你找到答案了吗?这将对我很有帮助。谢谢你,我刚刚给这篇文章添加了一个答案。希望对您有所帮助!