Socket.io-1.0从命名空间获取客户端

时间:2014-07-18 09:11:19

标签: socket.io-1.0

我使用socket.io 1.0,也许我的构思错了。

实际上,我用

打开命名空间服务器端
var nsp = io.of('/myNamespace');

客户与

联系
var socket = io.connect('http://localhost/myNamespace');

我可以毫无问题地开始沟通。 服务器端我用

捕获信号
nsp.on('connection', function(socket){
    socket.on('disconnect', function(){
        //problem here
    });
});

在断开连接中我想断开连接到我的命名空间的所有套接字,所以我试着做

for(var myParticipantID in io.sockets.adapter.nsp.connected)
{
    io.sockets.adapter.nsp.connected[myParticipantID].disconnect();
}

但它不起作用...我没有错误但客户端仍然连接 我试过

io.sockets.nsp.clients();

但是自socket.io 1.0

以来我有错误

我不想创造空间,但也许这是我的错误?

感谢您的帮助, MagicDenver

2 个答案:

答案 0 :(得分:0)

如果它对某人有帮助, 我使用节点js,所以我创建了一个值:

app.set(idNameSpace,[]);

并在我有新连接时推送套接字

答案 1 :(得分:0)

您应该使用 io.of(名称空间)功能来获取已连接的客户端。

for (var id in io.of('/namespace').connected) {
    var s = io.of('/namespace').connected[id];

    s.disconnect();
}

如果您不知道命名空间并且您在socket.on语句中,则可以使用socket.nsp.connected而不是io.of('/namespace').connected