【发布时间】:2012-02-18 21:34:15
【问题描述】:
我正在尝试在用户断开连接时为我的社交网络更新数据库的好方法,因为用户不再在网站上,因此无法激活脚本来更新数据库,并向其他人发送事件网站上的用户,所以我想我需要一些如何在服务器本身上执行此操作,而不是依赖客户端脚本。
现在我正在脚本的服务器端部分做这样的事情,(仍然由用户加载)
socket.on('disconnect', function () {
socket.broadcast.emit('disconnect', { data : session});
});
然后这会再次触发用户端脚本上的事件,它会运行一个 ajax 事件来更新 MYSQL 数据库,然后触发另一个套接字事件发送给用户,通知该用户已断开连接,但这仅适用于用户关闭他们的浏览器,但不像关闭他们的笔记本电脑或任何设备,它还依赖于被发送给其他用户让他们处理它,这是我不可能发生的。
这让我很困扰,我需要想出一个解决方案。
【问题讨论】:
-
我猜你必须听套接字超时/关闭事件,但还没有找到任何解决方案。
-
还有另一个问题:当您部署或重新启动服务器时,可能不会触发此类事件。你目前的做法非常不切实际。
-
你知道我怎样才能更好地做到这一点吗?
标签: javascript node.js websocket socket.io