Quelle est la différence entre io.sockets.emit et socket.broadcast.emit? Est-ce seulement que la diffusion émet à tout le monde MAIS la socket qui l'envoie?
Il semble qu'ils peuvent ê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
});
socket.broadcast.emit
alors que cette API n'est jamais documentée nulle part.socket.broadcast.emit
et ils le recevront, mais pas vous.socket.broadcast.emit()
se comporte de la même manière queio.sockets.emit
, mais au lieu d'émettre vers toutes les prises connectées, il émettra vers toutes les prises connectées sauf celle sur laquelle elle est appelée. Donc, dans ce cas, la socket référencée parsocket
ne recevra pas l'événement.la source
Scénario: 1: - Par l'utilisation de io.sockets.emit Diagramme détaillé: -io.sockets.emit
Scénario: 2: - Par l'utilisation de socket.broadcast.emit Diagramme détaillé: -socket.broadcast.emit
Conclusion: - Désormais, cela dépendra totalement de nos besoins commerciaux de celui qui sera préférable.
la source