Socket.io获取套接字所属的命名空间

pat*_*gan 4 javascript websocket socket.io

有没有办法获得套接字命名空间?我尝试了各种各样的东西,但无法让它发挥作用.给定一个套接字对象,我希望能够知道它属于哪个命名空间.非常感谢你.

例如

nsp = io.of('/' + venue_code).on('connection', function(socket) {
    socket.namespace = nsp
    if (typeof servers[nsp.name] == 'undefined') {
        servers[nsp.name] = socket.id
        winston.debug("Server " + socket.id + " connected to " + nsp.name)
        socket.room = "servers"
        socket.join(socket.room)
    } else {
        socket.room = "clients"
        socket.join(socket.room)
        winston.debug("Client " + socket.id + " connected to " + nsp.name)
    }
Run Code Online (Sandbox Code Playgroud)

pat*_*gan 6

它只是socket.nsp,它给出了整个Namespace对象.使用socket.nsp.name获得的实际名称.

nsp = io.of('/' + venue_code).on('connection', function(socket) {
    winston.debug(socket.nsp)
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果将此相同的处理程序附加到根命名空间,您将获得根命名空间 - 这些中间件连接正确的命名空间之前运行.

  • 这在io.on('connection',...)`中不起作用-它认为我正在连接到`/`,而不是`/ actual-nsp`。 (2认同)