Javascript 服务器本身上的套接字IO jquery事件

Javascript 服务器本身上的套接字IO jquery事件,javascript,node.js,websocket,socket.io,Javascript,Node.js,Websocket,Socket.io,我试图找到一种在用户断开连接时更新社交网络数据库的好方法,因为用户不再在站点上,因此无法激活脚本来更新数据库,并向站点上的其他用户发送事件,因此我想我需要了解如何在服务器上实现这一点,而不是依赖客户端脚本 现在,我正在脚本的服务器端部分执行类似的操作,用户仍然可以加载脚本 socket.on('disconnect', function () { socket.broadcast.emit('disconnect', { data : session}); }); 然后再次触发用户端脚本上

我试图找到一种在用户断开连接时更新社交网络数据库的好方法,因为用户不再在站点上,因此无法激活脚本来更新数据库,并向站点上的其他用户发送事件,因此我想我需要了解如何在服务器上实现这一点,而不是依赖客户端脚本

现在,我正在脚本的服务器端部分执行类似的操作,用户仍然可以加载脚本

socket.on('disconnect', function () { 
socket.broadcast.emit('disconnect', { data : session});
}); 
然后再次触发用户端脚本上的事件,并运行ajax事件更新MYSQL数据库,然后触发另一个套接字事件发送给用户,通知该用户已断开连接,但这仅在用户关闭浏览器时有效,而不是像关闭笔记本电脑或任何设备一样,它还依赖于被发送给其他用户让他们来处理它,这是我无法想象的


这让我非常困扰,我需要想出一个解决办法

使用ajax轮询持续发送ajax请求,服务器会监听这些请求,并允许在10秒后超时,以表示用户仍在联机。当服务器停止接收请求时,用户已注销。

使用ajax轮询持续发送服务器侦听的ajax请求,并允许在10秒后超时,以表示用户仍在线。当服务器停止接收请求时,用户已注销。

我猜您必须侦听套接字超时/关闭事件,但尚未找到任何解决方案。甚至还有另一个问题:部署或重新启动服务器时,可能不会触发此类事件。您当前的方法非常不可靠。您知道我如何才能更好地执行此操作吗?这可能会对您有所帮助:我猜您必须侦听套接字超时/关闭事件,但尚未找到任何解决方案。甚至还有另一个问题:当您部署或重新启动服务器时,可能不会触发此类事件。你目前的方法非常不可靠。你知道我如何才能做得更好吗?这可能对你有好处: