在socket.io中禁用默认命名空间或断开所有套接字连接到默认命名空间

时间:2016-09-08 09:44:44

标签: node.js websocket socket.io

我有一个在节点上运行的socket.io服务器,我允许不同的第三方应用程序连接到不同的命名空间。

我不希望任何人连接到默认命名空间/,打算永久禁用默认命名空间或将connection上的所有套接字断开连接到默认命名空间

以下是我的代码部分:

服务器端:

var io = require('socket.io')(http);
var nsp={};
var namespaces = ["/news","/world","/chat"];
for(var i=0;i < namespaces.length;i++){
    namesp = namespaces[i];
    nsp[namesp] = io.of(namesp);
    nsp[namesp].on('connection', function(socket){

    // some code here

    });
}

如果我尝试使用上面的代码连接到默认命名空间,它仍然接受连接。

在服务器中添加以下代码:

io.of("/").on("connection", function(socket){
    socket.disconnect("unauthorized");
});

如果已定义,则将所有连接转到上面的代码。因此无法单独关闭默认命名空间连接的套接字。

我也尝试使用

删除默认命名空间
delete io.nsps['/'];

似乎不起作用。

我是socket.io的新手。解决它的任何解决方案?

0 个答案:

没有答案