node.js - Socket.io+SailsJS : Chat application-How to check whether the client is shut down, 并使用户离线?

标签 node.js socket.io sails.js node-webkit

我正在node-web kit和SailJs中创建一个多用户聊天应用程序,并且我试图实现用户的登录状态。用户打开应用程序后即可上线。用户下线的情况有:

  1. 用户点击注销按钮
  2. 用户关闭应用程序窗口。
  3. 用户关闭他/她的系统。

当用户关闭系统时,注销状态不起作用。这是我编写的代码的一部分:

UserSocket.find({
  companyId: user.companyId
}, function (err, sockets) {
  if (!err && sockets != undefined && sockets.length > 0) {
    socketList = _.pluck(sockets, "socketId");
    sails.sockets.emit(socketList, 'userOffline', {
       previous: user
    });
  }
});

请帮我解决这个问题。提前致谢。

最佳答案

您是否尝试过在 config/sockets.js 中使用 onDisconnect 方法?

module.exports.sockets = {
    onDisconnect: function(session, socket) {
        //do your stuff here

    }
}

关于node.js - Socket.io+SailsJS : Chat application-How to check whether the client is shut down, 并使用户离线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27897926/

相关文章:

node.js - OpenSSL 错误 - 无法获取本地颁发者证书

node.js - 无法读取未定义的 socketio 的属性 'emit'

javascript - promise : execute after loop

twitter-bootstrap-3 - 如何将 "active"类添加到导航栏?

json - Express API JSON 和 XML POST 请求

html - 当我尝试单击 HTML 中的提交按钮时出现 “Cannot POST/”

javascript - JS 什么时候将 {} 解释为空 block 而不是空对象?

javascript - 发送图像套接字io和android

node.js - NodeJS Express 不提供服务 '/socket.io/socket.io.js'

node.js - 在 bluebird Promise 中执行异步操作