【问题标题】:Socket IO jquery events on the server itself服务器本身上的套接字 IO jquery 事件
【发布时间】:2012-02-18 21:34:15
【问题描述】:

我正在尝试在用户断开连接时为我的社交网络更新数据库的好方法,因为用户不再在网站上,因此无法激活脚本来更新数据库,并向其他人发送事件网站上的用户,所以我想我需要一些如何在服务器本身上执行此操作,而不是依赖客户端脚本。

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

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

然后这会再次触发用户端脚本上的事件,它会运行一个 ajax 事件来更新 MYSQL 数据库,然后触发另一个套接字事件发送给用户,通知该用户已断开连接,但这仅适用于用户关闭他们的浏览器,但不像关闭他们的笔记本电脑或任何设备,它还依赖于被发送给其他用户让他们处理它,这是我不可能发生的。

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

【问题讨论】:

  • 我猜你必须听套接字超时/关闭事件,但还没有找到任何解决方案。
  • 还有另一个问题:当您部署或重新启动服务器时,可能不会触发此类事件。你目前的做法非常不切实际。
  • 你知道我怎样才能更好地做到这一点吗?
  • 这可能对你有用:stackoverflow.com/questions/8648681/…

标签: javascript node.js websocket socket.io


【解决方案1】:

使用 ajax 轮询(持续发送服务器监听并允许 10 秒后超时的 ajax 请求)来表示用户仍然在线。当服务器停止接收请求时,用户已经登出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 1970-01-01
    • 2019-10-30
    相关资源
    最近更新 更多