Quelle est la différence entre io.sockets.emit et socket.broadcast.emit? Est-ce seulement la diffusion qui émet à tout le monde MAIS le socket qui l'envoie?
Il semble qu'ils puissent être utilisés de manière interchangeable:
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
enverra à tous les clients
socket.broadcast.emit
enverra le message à tous les autres clients à l'exception de la nouvelle connexion
Cet article Wiki de Socket.IO aidera tout le monde à lire cette question:
socket.broadcast.emit()
se comporte de la même façon que io.sockets.emit
, mais au lieu d’émettre sur toutes les prises connectées, il émettra sur toutes les prises connectées, à l’exception de celle sur laquelle elle est appelée. Donc, dans ce cas, le socket référencé par socket
ne recevra pas l'événement.
Scénario: 1: - En utilisant io.sockets.emit diagramme détaillé: -io.sockets.emit
Ici, chaque socket reçoit le message comprenant l'initiateur .
// BY IO>SOCKETS>EMIT
io.sockets.emit('MyChannelBroadcast',
{
owner:"Anshu Ashish",
clientCount:clients,
message:"Welcome All"
}
);
Scénario: 2: - En utilisant socket.broadcast.emit diagramme détaillé: -socket.broadcast.emit
Ici, toutes les sockets reçoivent un message sauf un, c'est-à-dire un initiateur .
// BY SOCKET>BROADCAST>EMIT
socket.broadcast.emit('BroadCastExceptMe',{data:"HAVE A Nice DAY"});
Conclusion: - Maintenant, cela dépend totalement de nos exigences commerciales et de celles qui seront préférables.