我可以通过套接字ID发送到个人socketid(私信)而不指定名称空间吗?
示例:socket.to(socketId).emit('message')
。它对我不起作用。
它仅适用于命名空间。 namespaceIo.to(socketId).emit('message')
是否可以通过套接字ID发送到单个socketid(私有消息)而无需指定名称空间?因为服务器的所有相同套接字ID都是全局的。
答案 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'