【问题标题】:Socket.io+SailsJS: Chat application-How to check whether the client is shut down,and make the user offline?Socket.io+SailsJS:聊天应用-如何查看客户端是否关闭,如何让用户下线?
【发布时间】:2015-03-09 23:30:30
【问题描述】:

我正在 node-web 工具包和 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
    });
  }
});

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

【问题讨论】:

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


    【解决方案1】:

    你有没有试过在 config/sockets.js 中使用 onDisconnect 方法?

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

    【讨论】:

    • 是的,我也试过了。但是只有当他再次打开他的系统时,用户才会离线。那时只有服务器知道套接字已断开连接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多