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 以来我有错误

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

感谢您的帮助,魔术丹佛

4

2 回答 2

0

您应该使用io.of(namespace)函数来获取连接的客户端。

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

于 2014-07-21T19:10:56.390 回答
0

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

app.set(idNameSpace,[]);

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

于 2014-07-21T09:19:30.233 回答