Ohne mehr Code ist es schwer zu sagen, was Sie wollen, aber eins ist sicher, um eine Nachricht an einen einzelnen Benutzer zu senden, müssen Sie verwenden, dass socket
Objekt und verwenden socket.emit
Soweit ich broadcast
wissen, ist nur benutzt, um jedem außer dir selbst zu erzählen.
Was ich in der Regel tun, wenn es darum geht, den Überblick über Nutzer zu halten, ist ich habe folgende:
var userList = [];
io.on('connection', function (socket) {
socket.on('userData', function (userDetails) {
userDetails.socket = socket;
userList[userDetails.id] = userDetails
});
});
Basicly, wenn ein Benutzer auf meine Steckdose verbindet, und die Seite für den Benutzer vollständig ist geladen sendet seine ID (oder ein Token, wenn Sie möchten), dann ordne ich die socket
des Benutzers in die Liste ein, also kann ich sie schnell wieder aufheben, wenn ich an diesen Benutzer senden möchte.
könnte ein Beispiel sein:
user.id = 33
auf unserem Server
Nach dem Laden der Benutzer sendet auf unseren Server userData
Funktion
Der Sockel genommen und die Liste wird dann eine Verbindung setzen in an Zeile 33
Wenn wir brauchen, können wir den folgenden Code verwenden, um die Benutzer zu erhalten socket
:
socket = userList[33];
oder wenn wir das Objekt:
socket = userList[user.id];
Ich hoffe, das Ihnen hilft.
Ich folge nicht ganz, was Sie hier erreichen wollen. 'socket.id' ist die Socket-ID (no waaayyy) des aktuellen Benutzers. Können Sie das Thema näher erläutern? –
@SterlingArcher Alle meine Benutzer werden von socket.id identifiziert, aber die Nachricht ist nur für den Empfänger, nicht für den Absender. – Emerceen
Ich verstehe es nicht ... Was würden Sie gerne passieren? Bitte fügen Sie einige Beispiele für die Eingabe und Ausgabe von dem, was Sie gerne machen möchten. –