Quiero enviar datos a un ID de socket específico.
Solíamos poder hacer esto en las versiones anteriores:
io.sockets.socket(socketid).emit('message', 'for your eyes only');
¿Cómo haría yo para hacer algo similar en Socket.IO 1.0?
Quiero enviar datos a un ID de socket específico.
Solíamos poder hacer esto en las versiones anteriores:
io.sockets.socket(socketid).emit('message', 'for your eyes only');
¿Cómo haría yo para hacer algo similar en Socket.IO 1.0?
En socket.io 1.0 proporcionan una mejor forma de hacerlo. Cada zócalo se une automáticamente a una habitación predeterminada por su propia identificación. Consultar documentos: http://socket.io/docs/rooms-and-namespaces/#default-room
Entonces puede emitir a un socket por id con el siguiente código:
io.to(socketid).emit('message', 'for your eyes only');
En socket.io 1.0 puedes hacerlo con el siguiente código:
Actualizar:
La respuesta de @ MustafaDokumacı contiene una mejor solución.
fuente
@Mustafa Dokumacı y @Curious ya proporcionaron suficiente información, estoy agregando cómo puede obtener la identificación del socket.
Para obtener la identificación del socket, use socket.id :
fuente
Si ha utilizado un espacio de nombres, descubrí que lo siguiente funciona:
Más sobre espacios de nombres: http://socket.io/docs/rooms-and-namespaces/
fuente
Creo que tanto @Curious como @ MustafaDokumacı proporcionaron soluciones que funcionan bien. Sin embargo, la diferencia es que con la solución de @ MustafaDokumacı, el mensaje se transmite a una sala y no solo a un cliente en particular.
La diferencia es notable cuando se solicita un reconocimiento.
funciona como se esperaba, mientras
falla con
fuente
en Node.js -> socket.io -> hay un ejemplo de chat para descargar Pegue esto en la parte de línea (io en la conexión) ... uso este código que funciona al 100%
fuente