【发布时间】:2015-08-06 18:39:00
【问题描述】:
在socket.io中,如果你想向特定房间发送消息,通常在服务器端使用特定语法:io.to(room).emit('event', 'message');。
但是 client(我的意思是在浏览器中运行的与 socket.io 相关的代码)如何指示消息应该发送到特定房间?
只创建这样的东西是否很常见(当然服务器必须对其进行评估):
socket.emit('chat message', {room: 'abc', msg: 'hello there'});
或者 socket.io 客户端库是否也为此目的提供了特定的语法?
编辑:澄清一下,我上面的建议似乎有效,我只是不确定是否有更好的解决方案。
【问题讨论】:
-
AFAIK 房间和命名空间的使用是 socket.io 推荐的socket.io/docs/server-apisocket.io/docs/rooms-and-namespaces
-
他们建议使用
multiplexing, socket.io/docs/#restricting-yourself-to-a-namespace 虽然它是用于namespace而不是rooms,但在类似情况下可能会有所帮助。 -
@Pogrindis 谢谢,我知道这一点,我确实在服务器端使用了房间的概念。恐怕我的问题还不够清楚。我想知道客户端应用程序(例如,使用 socket.io 的基于 angular.js 的聊天)如何告诉 socket.io 服务器消息应该去哪个房间。
-
@Ankit 谢谢。正如您所指出的,它仅适用于名称空间。不过还是很高兴知道。
标签: javascript node.js socket.io