2012-02-18 64 views
2

我试图在用户断开连接时为我的社交网络更新数据库的好方法,因为用户不再在站点上那里脚本无法激活更新数据库,并发布事件给网站上的其他用户,所以我想我需要一些如何做到这一点在服务器本身,而不是依靠客户端脚本。服务器上的套接字IO jQuery事件本身

我现在正在做这样的事情在脚本的服务器端部分,(这是由用户仍然加载)

socket.on('disconnect', function() { 
socket.broadcast.emit('disconnect', { data : session}); 
}); 

这再次触发用户端脚本的情况下,并且它运行一个ajax事件来更新MYSQL数据库,然后触发另一个套接字事件发送给用户,通知该用户断开连接,但是这只有在用户关闭浏览器但不喜欢关闭笔记本电脑或任何设备,它也依赖于被发送给其他用户来处理它,这是我不能发生的。

这让我非常困扰,我需要想出一个解决方案。

+0

我想你必须听套接字超时/关闭事件,但还没有找到任何解决方案。 – erenon 2012-02-18 21:39:00

+0

还有一个问题:当您部署或重新启动服务器时,可能不会触发此类事件。你目前的做法是不可行的。 – usr 2012-02-18 21:57:51

+0

你有什么想法,我怎么能做到这一点更好的方式? – 2012-02-18 21:59:48

回答

0

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