242 votes

Envoyer la réponse à tous les clients sauf l'expéditeur

Pour envoyer quelque chose à tous les clients, vous utilisez :

io.sockets.emit('response', data);

Pour recevoir des clients, vous utilisez :

socket.on('cursor', function(data) {
  ...
});

Comment puis-je combiner les deux afin que, lorsqu'un client reçoit un message sur le serveur, j'envoie ce message à tous les utilisateurs, à l'exception de celui qui a envoyé le message ?

socket.on('cursor', function(data) {
  io.sockets.emit('response', data);
});

Dois-je le contourner en envoyant l'identifiant du client avec le message et en vérifiant ensuite du côté client ou existe-t-il un moyen plus simple ?

0voto

reabow Points 129

J'utilise des espaces de noms et des pièces - j'ai trouvé

socket.broadcast.to('room1').emit('event', 'hi');

de travailler là où

namespace.broadcast.to('room1').emit('event', 'hi');

n'a pas

(si quelqu'un d'autre est confronté à ce problème)

0voto

user1932130 Points 35

Utiliser ce codage

io.sockets.on('connection', function (socket) {

    socket.on('mousemove', function (data) {

        socket.broadcast.emit('moving', data);
    });

cette socket.broadcast.emit() émettra tout ce qu'il y a dans la fonction sauf vers le serveur qui émet.

1 votes

Comment obtenir io à l'intérieur de ceci si le callback est défini dans un autre fichier

0 votes

J'ai mon application dans plusieurs fichiers, et je les concatène avec PrePros ou Koala au lieu de les exiger, cela me permet de partager toutes leurs variables.

1 votes

Ou avoir io comme mondial

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X