Tienes que usar sesiones, que no son más que identificadores que distinguen conversaciones de otras.
Por ejemplo, suponiendo que un usuario se conecta: El usuario proporcionó un id de sesión
c2398hvi8m234234 (mediante un formulario o por la URL o lo que fuera)
Código Javascript
:
Ver originalsocket.join("c2398hvi8m234234");
function propagateEvent(sessid,eventname,data)
{
io.sockets.in(sessid).emit(eventname, data);
}
El uso de rooms permite aglutinar sockets y enviar mensajes y eventos exclusivamente a los sockets de ese room.
propagateEvent("c2398hvi8m234234","evento",datos) enviaría el evento a los usuarios del room
c2398hvi8m234234.
1. Mediante join introduces el socket actual en una room.
2. Mediante in-emit envías un evento a todos los sockets de la room.