我有一个带命名空间的socket.io v2.0.3
服务器。
var io = require('socket.io')(88);
io.of('/namespace').on('connection', function(client){
client.on('checkForOffline', function(event){
for (var i = 0; i < event.length; i++){
console.log(client[event[i]["id"]].connected);
//doesn't work
}
});
});
TypeError:无法读取未定义
的属性'connected'
我知道使用on('disconnect')
但是我无法确定用户是在浏览客户区还是实际关闭窗口/已断开连接。
谢谢,帮助将不胜感激。
修改
var connectedClients = Object.keys(io.of('/namespace').clients().connected);
加载所有已连接客户端ID的数组。
要检查客户端ID是否已连接,请循环访问connectedClients[n]
数组。
答案 0 :(得分:0)
您的client
变量不是数组。
这就是您:Cannot read property 'connected'
。
client
变量仅保存了有关一次客户端的信息。
我有一个问题...... event
变量中的内容是什么?
答案 1 :(得分:0)
io.clients((error, clients) => {
if (error) throw error;
console.log(clients); // => [6em3d4TJP8Et9EMNAAAA, G5p55dHhGgUnLUctAAAB]
});
来源 https://socket.io/docs/server-api/#namespace-clients-callback