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

时间:2016-02-22 11:45:11

标签: node.js sockets socket.io

如果您在特定命名空间/房间中有一个客户端执行socket.emit而您在服务器上执行“socket on”,那么如何将命名空间原点捕获为字符串?

IE:

客户端:

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

服务器:

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

1 个答案:

答案 0 :(得分:1)

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

console.log(socket.rooms);

socket.io不公开客户端连接的命名空间,但是您可以在服务器上看到socket.nsp.name的当前命名空间,并且该服务器上存在socket.nsp.server.nsps

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