如何从客户端socket.emit serverside socket.io捕获命名空间的来源

如果你有一个客户端在一个特定的命名空间/房间执行一个socket.emit,你在服务器上做一个“套接字”如何能捕获命名空间的起源作为一个string?

IE:

客户:

socket.emit('foo', $('#bar').val()); return false; 

服务器:

 socket on('foo', function (foo) { var usersubmitteddata = foo var namespaceorigin = ??? }); 

要列出套接字所属的房间,只需使用socket.rooms

 console.log(socket.rooms); 

socket.io没有公开哪个连接的客户端的命名空间,但是你可以看到服务器上的当前命名空间是socket.nsp.name ,服务器上socket.nsp.name存在socket.nsp.server.nsps

客户端连接到的名称空间必须在连接之前创build。 如果没有,你将得到一个Invalid namespace错误消息。 但在此之后,实际上是包含名称空间的每条消息,而不是套接字。 在协议本身中,您可以让客户端在不同的名称空间上发送消息。