specific socket rooms example node.js socket.io

node.js - rooms - ¿Cuál es la diferencia entre io.sockets.emit y broadcast?



socket.io express (3)

Escenario: 1: - Mediante el uso de io.sockets.emit Diagrama detallado: -io.sockets.emit

Aquí Every Socket recibe el mensaje, incluido el Iniciador .

// BY IO>SOCKETS>EMIT io.sockets.emit(''MyChannelBroadcast'', { owner:"Anshu Ashish", clientCount:clients, message:"Welcome All" } );

Escenario: 2: - Mediante el uso de socket.broadcast.emit Diagrama detallado: -socket.broadcast.emit

Aquí todos los sockets reciben mensaje excepto uno, es decir, el iniciador .

// BY SOCKET>BROADCAST>EMIT socket.broadcast.emit(''BroadCastExceptMe'',{data:"HAVE A NICE DAY"});

Conclusión: - Ahora dependerá totalmente de los requisitos de nuestra empresa, cuál de ellos será preferible.

¿Cuál es la diferencia entre io.sockets.emit y socket.broadcast.emit? ¿Es solo que la emisión emite a todos pero el zócalo que lo envía?

Parece que se pueden usar indistintamente:

io.sockets.on(''connection'', function (socket) { //these should do the same thing io.sockets.emit(''this'', { receivers: ''everyone''}); socket.broadcast.emit(''this'', { receivers: ''everyone but socket''}); //emits to everyone but socket socket.emit(''this'', { receivers: ''socket''}); //emits to socket });



socket.broadcast.emit() comporta de forma similar a io.sockets.emit , pero en lugar de emitir a todos los sockets conectados, se emitirá a todos los conectores conectados excepto al que se está llamando. Entonces, en este caso, el socket al que hace referencia el socket no recibirá el evento.