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

时间:2017-12-02 17:06:27

标签: socket.io

我可以通过套接字ID发送到个人socketid(私信)而不指定名称空间吗?

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

它仅适用于命名空间。 namespaceIo.to(socketId).emit('message')

是否可以通过套接字ID发送到单个socketid(私有消息)而无需指定名称空间?因为服务器的所有相同套接字ID都是全局的。

2 个答案:

答案 0 :(得分:1)

如果只有该套接字的ID值,要将服务器上的消息直接发送到单个套接字,您可以这样做:

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

在这种情况下,io的工作方式与顶级命名空间类似。

答案 1 :(得分:0)

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

# 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相同