2017-07-25 10 views
0

ich mit socket.io mit meinem Server eine Nachricht an alle Steckdosen zu emittieren bin versucht. Bisher ist der Code wie folgt:emittieren alle Steckdosen nicht Socket.io arbeiten

if(electionExists) { 
     var connectedClients = io.sockets.adapter.rooms[electionRequested].sockets; 
     for(client in connectedClients) { 
      socket.to(client).emit("isVoteValid", {voteToValidate: voteToValidate}); 
     } 
    } 

ich dafür gesorgt, dass es die if (electionExists) Zustand eintritt. Außerdem habe ich das Array verbundener Kunden ausgedruckt, die wie folgt aussieht:

{ SdiVoIUuGfFL5AJXAAAA: true, 'wLh-EfkAIrWpjx6nAAAC': true } 

und nur aus Gründen der es, ich gedruckt jeden Kunden in der Schleife, was dazu führt:

SdiVoIUuGfFL5AJXAAAA 
wLh-EfkAIrWpjx6nAAAC 

Deshalb bin ich geneigt zu glauben, dass das Problem ist nicht die richtige Buchse ids auf zu bekommen. Das Emit-Ereignis funktioniert jedoch nicht. Auf der Client-Seite Ich habe dies:

socket.on("isVoteValid", function(obj) { 
    console.log("it enters isVoteValid"); 
    }); 

was wirklich ist, wirklich einfach, aber die console.log nie passiert. Ich kann wirklich nicht sehen, warum es nicht funktioniert. Jeder hat eine Idee?

+0

try 'socket.broadcast.emit' ohne ein an alle Clients senden for-Schleife – frozen

+0

hat nicht funktioniert :(Nichts zeigte im console.log –

+0

up Da Sie nur an alle Steckdosen in einem Raum zu emittieren versuchen, warum Sie in den Raum ausgestrahlt nicht nur? – jfriend00

Antwort

0

Wenn Sie Ihre Nachricht wollte dann senden verwenden Sie folgenden Code

if(electionExists) { 
     socket.broadcast.emit("isVoteValid", {voteToValidate: voteToValidate}); 
} 

oder Sie können auch diese

if(electionExists) { 
     io.sockets.emit("isVoteValid", {voteToValidate: voteToValidate}); 
} 
+0

@frozen auch vorgeschlagen, dass, aber es hat nicht funktioniert :( –

+0

in Ordnung versuchen zweite –

+0

die zweite gearbeitet, danke :) –

Verwandte Themen