Wat is het verschil tussen io.sockets.emit en broadcast?

Wat is het verschil tussen io.sockets.emit en socket.broadcast.emit? Is het alleen die uitzending naar iedereen MAAR de socket die het verzendt?

Het lijkt erop dat ze door elkaar kunnen worden gebruikt:

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

Antwoord 1, autoriteit 100%

io.sockets.emitstuurt naar alle klanten

socket.broadcast.emitstuurt het bericht naar alle andere clients behalve de nieuw gemaakte verbinding

Deze Socket.IO Wiki-post zal iedereen helpen deze vraag te lezen:

De recente cheatsheet kan ook hier worden bekeken:

https://socket.io/docs/v4/emit-cheatsheet


Antwoord 2, autoriteit 27%

socket.broadcast.emit()gedraagt ​​zich vergelijkbaar met io.sockets.emit, maar in plaats daarvan
van het uitzenden naar alle aangesloten stopcontacten zal het uitzenden naar alle aangesloten
socket behalve degene waarop het wordt aangeroepen. Dus in dit geval de socket
waarnaar wordt verwezen door socketzal de gebeurtenis niet ontvangen.


Antwoord 3, autoriteit 5%

Scenario:1:- Door het gebruik van io.sockets.emit
Gedetailleerd diagram:-io.sockets.emit

Hier krijgt elke socket het bericht inclusief Initiator.

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

Scenario:2:- Door het gebruik van socket.broadcast.emit
Gedetailleerd diagram:-socket.broadcast.emit

Hier krijgt elke socket een bericht behalve één, d.w.z. Initiator.

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

Conclusie:- Nu hangt het helemaal af van onze zakelijke behoefte welke de voorkeur heeft.


Antwoord 4

Beschouw het volgende voorbeeld om het vrij eenvoudig te maken:
er zijn 2 clients client A, client Ben een server
we gebruiken als reactie op een bepaalde gebeurtenis die door de klant is uitgezonden.

socket.brodcast.emit()

klant Averzendt het evenement
In dit geval stuurt de server de gebeurtenis niet terug naar client A, maar stuurt hij de gebeurtenissen naar alle andere aangesloten sockets. Dus in dit geval krijgt alleen de client Bde gebeurtenisreactie

io.emit()

client A verzendt de gebeurtenis, de server stuurt de antwoordgebeurtenis naar alle aangesloten sockets, zowel client Aals client B

Other episodes