【发布时间】:2016-06-07 21:44:52
【问题描述】:
我有一个 socket.io 客户端,如果特定用户登录/注销到我的 socket.io 服务器,它需要监听 我所做的是创建一个函数,该函数接受一个用户 ID 数组,以及一个回调,如果他登录/退出,则返回用户信息。这是代码:
this.onUserConnected = function(arrayOfUserID,cb){
if(typeof arrayOfUserID != 'object'){
return console.error('1st parameter is not an array');
}
socket.on('onUserConnected', function(user) {
if(arrayOfUserID.indexOf(user.user_id) > -1){
cb(user)
}
})
}
this.onUserDisconnected = function(arrayOfUserID,cb){
if(typeof arrayOfUserID != 'object'){
return console.error('onUserDisconnected 1st parameter is not an array');
}
socket.on('onUserDisconnected', function(user) {
if(arrayOfUserID.indexOf(user.user_id) > -1){
cb(user)
}
})
}
这里是socket.io服务器代码:
//Some authentication here which check and get the user if he exists
socket.emit('onUserConnected', user)
将用户发送到所有连接的套接字是否很好?在客户端,我获取所有登录/注销的用户并检查 user_id 是否等于 arrayOfUserID 中的值之一然后返回它是否很好?
注意:我知道 Socket.io Rooms,但在我的应用程序中我处理多个选项卡,并且我有一个动态命名空间
【问题讨论】:
-
您是只调用一次
this.onUserConnected(),还是使用不同的参数多次调用它? -
@jfriend00 一次