Erstellen Sie eine Liste von verbundenen Clients mit socket.io

8

Hier sind 2 verwandte Fragen. Sie zusammenzustellen macht mehr Sinn.

Frage 1

Ich habe eine node.js App, die ein Ereignis an alle Clients ausgibt und alle aktuellen Clients antworten mit einem ready emit. Wie kann ich eine Liste aller Clients erstellen, die auf die initiale Emission antworten, und welche Art von Identifikation kann zur Unterscheidung der Kunden verwendet werden?

Frage2:

Was ich versuche, nachdem ich eine Liste von verbundenen Clients gesammelt habe, ist, auf eine MySQL-Datenbanktabelle von N Anzahl von Zeilen zuzugreifen und jedem Client X Zeilen zuzuweisen. Diese Zeilen werden an ihre jeweiligen Clients zurückgesendet. Wie kann das gemacht werden?

Aktueller Code für Qn 1

Knotenkode

%Vor%

Clientseitiger JS-Code

%Vor%

Aktueller Code für Qn 2 Der Code funktioniert für einen einzelnen Client, aber wie durchlaufe ich alle verbundenen Clients und führe die gleiche Aktualisierung der Spalte und die Auswahl der Zeilen durch?

%Vor%     
Nyxynyx 27.11.2011, 06:54
quelle

2 Antworten

16

Sie müssen die verbundenen Clients selbst im Auge behalten. Der einfachste Weg wäre, ein Array zu verwenden:

%Vor%

Dann können Sie das clients -Array auf dem Server überall angeben, in Ihrem ready Event-Handler oder was auch immer. Etwas wie:

%Vor%     
rossipedia 27.11.2011, 09:21
quelle
20

Socket.io stellt Ihnen dafür eine öffentliche API zur Verfügung. Anstatt also etwas zu hacken, wie es Bryan vorschlägt, können Sie Folgendes verwenden:

%Vor%

Dadurch wird ein Array aller verbundenen Clients zurückgegeben.

Wenn Sie möchten, dass alle Clients mit einem bestimmten Namespace verbunden sind:

%Vor%

Aber du kannst es sogar noch mehr filtern .. wenn du alle Steckdosen in einem Raum haben willst:

%Vor%

Gibt ein Array von verbundenen Sockets für den Raum room name here as first argument

zurück     
3rdEden 28.11.2011 23:01
quelle

Tags und Links