Qual è la differenza tra io.sockets.emit e broadcast?

Qual è la differenza tra io.sockets.emit e socket.broadcast.emit? È solo che la trasmissione emette a tutti MA il socket che lo invia?

Sembra che possano essere usati in modo intercambiabile:

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 }); 

io.sockets.emit invierà a tutti i client

socket.broadcast.emit invierà il messaggio a tutti gli altri client ad eccezione della connessione appena creata

Questo post Wiki Socket.IO aiuterà tutti a leggere questa domanda:

socket.broadcast.emit() si comporta in modo simile a io.sockets.emit , ma invece di emettere su tutti i socket connessi, emetterà su tutti i socket connessi tranne quello su cui viene chiamato. Quindi in questo caso il socket a cui fa riferimento il socket non riceverà l’evento.

Scenario: 1: – Con l’uso di io.sockets.emit Diagramma dettagliato: -io.sockets.emit

Qui ogni presa riceve il messaggio che include l’ iniziatore .

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

Scenario: 2: – Tramite socket.broadcast.emit Diagramma dettagliato: -socket.broadcast.emit

Qui ogni socket riceve il messaggio tranne uno, cioè l’ iniziatore .

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

Conclusione: – Ora dipenderà totalmente dalle nostre esigenze aziendali quale sarà preferibile.