【发布时间】:2017-12-03 02:07:29
【问题描述】:
是否可以使用自定义 socket.id 向具有不同命名空间的套接字发送消息??我正在使用 socket.io 创建聊天并发送私人消息。
我成功地创建了一个房间并使用
私下向对方发送了一条消息io.to(room).emit('chatMessage', from, message);
但我也想使用它们的 ID 向具有不同命名空间的套接字发送消息,例如:
io.of('nameSpace').to(socket.id).emit('chatMessage', from, message);
我尝试了不同的组合,例如,
io.of('nameSpace').to(socket.id).emit('chatMessage', from, message);
io.of('nameSpace).sockets.socket(socket.id).emit('chatMessage', from, message);
io.to(users[socketid]).emit('chatMessage', from, message);
io.sockets.socket(socketid).emit('chatMessage', from, message);
但它不起作用。是否有其他方法可以将消息发送到具有不同命名空间的特定客户端?我正在使用房间和命名空间的组合。
注意:我使用与用户名相同的字符串查询作为我房间的名称。
【问题讨论】:
-
我不知道 socket.io 上的“命名空间”是什么,但我在向服务器上的某个用户 id 发送发射之前编写了一个代码,以将他重定向到游戏页面以使用开始游戏mysql 和 node.js 和 socket.io 如果你关心我可以把它写在答案上我认为代码将有助于解释如何在 socket.io 上保存护照用户 ID 并在页面上向它发送内容
-
哟?您是否使用房间向某个用户 ID 发出信号?
-
我将用户 ID 保存在 socket.io 和 mysql 的数组中,然后我在不使用房间的情况下调用它
-
你用的是什么版本的socket.io?我已经将 id 保存到了一个数组中,但我需要的是向具有特定命名空间的特定 socket.id 发送/发送消息。我正在使用房间和命名空间的组合,我认为数组不是解决方案。感谢您的回复。
-
io.of('nameSpace').to(socket.id).emit(...)应该可以工作,前提是socket.id已实际连接到该命名空间。
标签: node.js websocket socket.io