Node.js era algo que realmente me interesó durante un tiempo y lo usé en uno de mis proyectos para hacer un juego multijugador.
io.sockets.in().emit()
y socket.broadcast.to().emit()
son los dos métodos de emisión principales que usamos en las habitaciones de Socket.io ( https://github.com/LearnBoost/socket.io/wiki/Rooms ) Las habitaciones permiten una partición simple de los clientes conectados. Esto permite que los eventos se emitan con subconjuntos de la lista de clientes conectados y proporciona un método simple para administrarlos.
Nos permiten administrar los subconjuntos de la lista de clientes conectados (que llamamos habitaciones) y tener funcionalidades similares como las funciones principales de socket.io io.sockets.emit()
ysocket.broadcast.emit()
.
De todos modos intentaré dar los códigos de ejemplo con los comentarios para explicar. Vea si ayuda;
Habitaciones Socket.io
i) io.sockets.in (). emit ();
/* Send message to the room1. It broadcasts the data to all
the socket clients which are connected to the room1 */
io.sockets.in('room1').emit('function', {foo:bar});
ii) socket.broadcast.to (). emit ();
io.sockets.on('connection', function (socket) {
socket.on('function', function(data){
/* Broadcast to room1 except the sender. In other word,
It broadcast all the socket clients which are connected
to the room1 except the sender */
socket.broadcast.to('room1').emit('function', {foo:bar});
}
}
Socket.io
i) io.sockets.emit ();
/* Send message to all. It broadcasts the data to all
the socket clients which are connected to the server; */
io.sockets.emit('function', {foo:bar});
ii) socket.broadcast.emit ();
io.sockets.on('connection', function (socket) {
socket.on('function', function(data){
// Broadcast to all the socket clients except the sender
socket.broadcast.emit('function', {foo:bar});
}
}
Salud