Socket.io。是否可以在不指定名称空间的情况下通过套接字id发送到单个socketid(私有消息)?

Socket.io。是否可以在不指定名称空间的情况下通过套接字id发送到单个socketid(私有消息)?,socket.io,Socket.io,我可以通过套接字id向单个socketid(私有消息)发送消息而不指定名称空间吗 示例:socket.to(socketId.emit('message')。这对我不起作用 它只适用于名称空间名称空间IO.to(socketId).emit('message') 是否可以在不指定名称空间的情况下通过套接字id发送到单个socketid(私有消息)?因为所有相同的套接字id对于服务器来说都是全局的。要在只有套接字id值的情况下将服务器上的消息直接发送到单个套接字,可以执行以下操作: io.to(s

我可以通过套接字id向单个socketid(私有消息)发送消息而不指定名称空间吗

示例:
socket.to(socketId.emit('message')
。这对我不起作用

它只适用于名称空间<代码>名称空间IO.to(socketId).emit('message')


是否可以在不指定名称空间的情况下通过套接字id发送到单个socketid(私有消息)?因为所有相同的套接字id对于服务器来说都是全局的。

要在只有套接字id值的情况下将服务器上的消息直接发送到单个套接字,可以执行以下操作:

io.to(socketId).emit('message');

在本例中,
io
的工作方式与顶级名称空间类似。

如果要发送到同一名称空间中的另一个套接字,则不需要指定名称空间,这应该是实际情况。如果不是,那么你应该考虑使用房间。以下是一个基本示例:

# server side
var nsp = io.of('/foo');

nsp.on('connection', function (socket) {

  // Broadcast new connection to everyone except the sender in namespace foo
  socket.broadcast.emit('new-socket-connection', socket.id);

  socket.on('response', function(data) {
    socket.to(data.responseId).emit('message', data.msg);
  });

});

其中,
responseId
是在
'new-socket-connection'

中发送的相同id,不清楚“直接消息”是什么意思。这不是一个标准的socket.io术语。@jfriend00我的意思是-发送给个人socketid(私人消息)是的,我知道。但是我有多个名称空间。我希望发送到单个socketid(私有消息),而不指定名称空间。可能吗?您的示例仅适用于默认(“/”)命名空间。@YuryGolikov-您把我弄糊涂了。目标套接字是否位于特定命名空间中?我不认为socket.io会保留所有套接字的全局列表,而不管名称空间如何。它们在特定名称空间中保留套接字列表。这就是名称空间的全部要点(维护单独的套接字列表)。是的。我有多个名称空间。其中一个是插座。示例:/ns1和/ns2。我有套接字id。但不知道此套接字的命名空间。我可以只知道套接字id发送给单个套接字id(私有消息)吗?但为什么他们用全局名称创建套接字id呢?比如/ns1#iQYAFwMHhxjDL-4dAAAC?为了什么?@YuryGolikov-听起来你应该只使用一个名称空间,然后使用房间来分组套接字。然后,您可以更轻松地发送到任何套接字或一组套接字。名称空间只是比您试图使它们更加分离。