我有一个在节点上运行的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的新手。解决它的任何解决方案?