Maison >interface Web >js tutoriel >Comment exclure l'expéditeur des diffusions Socket.IO ?

Comment exclure l'expéditeur des diffusions Socket.IO ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-31 02:02:29304parcourir

How to Exclude the Sender from Socket.IO Broadcasts?

Envoi d'une réponse à tous les clients sauf l'expéditeur

Pour diffuser un message à tous les clients connectés, la fonction io.sockets.emit() est utilisé. Cependant, lorsque vous souhaitez exclure l'expéditeur de la réception de la diffusion, vous pouvez vous interroger sur une approche plus simple que de vérifier l'ID de l'expéditeur côté client.

Dans Socket.IO, la propriété socket.broadcast fournit une solution pour ce scénario. En utilisant socket.broadcast.emit(), vous pouvez envoyer un message à tous les clients sauf l'expéditeur. Voici un exemple :

<code class="javascript">socket.on('cursor', function(data) {
  socket.broadcast.emit('response', data);
});</code>

Dans cet exemple, lorsqu'un client envoie un événement « curseur », le serveur diffuse les données reçues à tous les autres clients connectés, à l'exclusion de l'expéditeur.

Voici un résumé des fonctions d'émission de Socket.IO pour votre référence :

  • socket.emit() : envoie un message au client expéditeur uniquement.
  • io.emit() : envoie un message un message à tous les clients, y compris l'expéditeur.
  • socket.broadcast.emit() : envoie un message à tous les clients sauf l'expéditeur.
  • socket.broadcast.to() : envoie un message à tous les clients dans une salle ou un canal spécifique, à l'exception de l'expéditeur.
  • socket.to() : envoie un message au client expéditeur, uniquement s'il se trouve dans une salle ou un canal spécifique.
  • io.in() : envoie un message à tous les clients dans une salle ou un canal spécifique, y compris l'expéditeur.
  • socket.broadcast.to(socketid) : envoie un message à un identifiant client spécifique.
  • io.of() : envoie un message à tous les clients dans un espace de noms spécifique, y compris l'expéditeur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn