Ich habe mir alle Antworten angeschaut, wie ich an einen bestimmten Kunden geschickt wurde, und ich habe keinen gefunden, der funktioniert.Socket.io 1.4.5 Wie senden Sie eine Nachricht an einen einzelnen Client in einem Raum?
Ich habe einen Namensraum mit einem Raum, der 2 Clients enthält. Ich habe einen Prozess, der Informationen für 1 der Clients in diesem Raum senden möchte. Ich habe die SocketID. Also wenn ich es versuche:
namespace.to(socketID).emit('messageID',data);
Ich sehe buchstäblich nichts. Ich habe einen Hörer auf der Clientseite eingerichtet:
namespace.on('messageID', function(data) {
console.log('messageID seen');
console.log(data);
});
Es wird nie ausgelöst. Ich habe auch versucht:
namespace.to(socketID).emit('messageID',data);
und
namespace.sockets.sockets[socketID].emit('messageID',data);
und
namespace.clients[socketId].emit('messageID',data);
Keiner von ihnen arbeiten.
Also, was ist der richtige Weg, um eine Nachricht an einen bestimmten Client in einem Raum in einem Namespace in socket.io Version 1.4.5 zu senden?
Jede Hilfe wäre willkommen!
Z
Sie können auch einen Verweis auf den Socket dieses Clients speichern, wenn der Client eine Verbindung herstellt, und ihn später wie erforderlich über 'socket.emit()' verwenden. Sie müssen auf diese Weise keinen weiteren Raum für diesen Kunden erstellen. – Josh1billion
Wie würde ich das machen? – Zanderfax
Schwer in einen Kommentar einzutippen, aber in 'io.on ('Verbindung', Funktion (Socket) {/ * hier * /}', speichern Sie einen Verweis auf das 'Socket'-Objekt, wie Sie möchten (vielleicht mit einem globalen Array von allen verbundenen Clients). Von diesem Punkt an können Sie einfach die Funktion emit() 'des Objekts aufrufen, wo immer Sie möchten, über den von Ihnen gespeicherten Verweis. – Josh1billion