Socket.io。是否有可能通过套接字ID发送到单个socketid(私人消息)而不指定命名空间?
我可以通过套接字ID发送给单独的socketid(私人消息)而不指定命名空间吗?Socket.io。是否有可能通过套接字ID发送到单个socketid(私人消息)而不指定命名空间?
样品:socket.to(socketId).emit('message')
。它不适合我。
它只与名称空间一起使用。 namespaceIo.to(socketId).emit('message')
是否有可能通过套接字id发送给个人socketid(私人消息)而不指定命名空间?因为所有相同的套接字ID都是全局的服务器。
要在服务器上直接将消息发送到一个单一的插座,当你有只是插座的ID值,你可以这样做:
io.to(socketId).emit('message');
在这种情况下,io
作品就像顶级的命名空间。
是的,我知道。但我有多个名称空间。我想发送到个人socketid(私人消息)**没有**指定命名空间。可能吗?您的示例仅使用默认('/')名称空间。 –
@YuryGolikov - 你让我困惑。目标套接字是否在特定的命名空间中?我不认为socket.io保留了所有套接字的全局列表,不管命名空间如何。它们将套接字列表保存在特定的命名空间中。这是名称空间的整个点(用于维护套接字的单独列表)。 – jfriend00
是的。我有多个名称空间。其中之一 - 套接字。例如:/ ns1和/ ns2。我有套接字ID。但是一个不知道这个套接字的命名空间。我可以发送到个人套接字ID(私人信息)只知道套接字ID? –
如果您发送到同一名称空间中的另一个套接字,则不需要指定该名称空间,这应该是这种情况。如果没有,那么你应该考虑使用房间。这是一个基本的例子:
# 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
@ jfriend00 我的意思是 - 发送给个人socketid(私人消息) –