it-swarm.com.de

Was ist der Unterschied zwischen io.sockets.emit und broadcast?

Was ist der Unterschied zwischen io.sockets.emit und socket.broadcast.emit? Sendet nur diese Sendung an alle, ABER die Buchse, die sie sendet?

Es scheint, als könnten sie austauschbar verwendet werden:

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

io.sockets.emit wird an alle Clients senden

socket.broadcast.emit sendet die Nachricht an alle anderen Clients mit Ausnahme der neu erstellten Verbindung

Dieser Socket.IO-Wiki-Beitrag hilft jedem, der diese Frage liest:

162

socket.broadcast.emit() verhält sich ähnlich wie io.sockets.emit, aber anstatt an alle angeschlossenen Sockets zu senden, wird es an alle angeschlossenen Sockets gesendet, mit Ausnahme derjenigen, auf die es angerufen wird. In diesem Fall empfängt der Socket, auf den socket verweist, das Ereignis nicht.

44
Karthic Rao

Szenario: 1: - Mit io.sockets.emit Detailliertes Diagramm: -io.sockets.emit

Hier bekommt jeder Socket die Nachricht inklusive Initiator .

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

Szenario: 2: - Mit socket.broadcast.emit Detailliertes Diagramm: -socket.broadcast.emit

Hier erhält jeder Socket eine Nachricht mit Ausnahme eines Initiators .

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

Fazit: - Jetzt hängt es ganz von unserer Geschäftsanforderung ab, welche vorzuziehen ist.

6
Anshu Ashish