Quero enviar dados para um ID de soquete específico.
Costumávamos fazer isso nas versões mais antigas:
io.sockets.socket(socketid).emit('message', 'for your eyes only');
Como eu faria algo semelhante no Socket.IO 1.0?
Quero enviar dados para um ID de soquete específico.
Costumávamos fazer isso nas versões mais antigas:
io.sockets.socket(socketid).emit('message', 'for your eyes only');
Como eu faria algo semelhante no Socket.IO 1.0?
No socket.io 1.0 eles fornecem uma maneira melhor para isso. Cada soquete automaticamente se junta a uma sala padrão por auto-identificação. Verifique os documentos: http://socket.io/docs/rooms-and-namespaces/#default-room
Portanto, você pode emitir para um soquete por id com o seguinte código:
io.to(socketid).emit('message', 'for your eyes only');
No socket.io 1.0, você pode fazer isso com o seguinte código:
Atualizar:
A resposta de @MustafaDokumacı contém uma solução melhor.
fonte
@Mustafa Dokumacı e @Curious já forneceram informações suficientes, estou adicionando como você pode obter a id do soquete.
Para obter o id do soquete, use socket.id :
fonte
Se você usou um namespace, descobri que o seguinte funciona:
Mais sobre namespaces: http://socket.io/docs/rooms-and-namespaces/
fonte
Acredito que @Curious e @ MustafaDokumacı forneceram soluções que funcionam bem. A diferença é que, com a solução de @MustafaDokumacı, a mensagem é transmitida para uma sala e não apenas para um cliente específico.
A diferença é evidente quando um reconhecimento é solicitado.
funciona como esperado, enquanto
falha com
fonte
no Node.js -> socket.io -> existe um exemplo de chat para baixar a parte Cole isso na linha (io na conexão) .. eu uso esse código que funciona 100%
fonte