Um etwas an alle Kunden zu senden, verwenden Sie:
io.sockets.emit('response', data);
Um von Kunden zu empfangen, verwenden Sie:
socket.on('cursor', function(data) {
...
});
Wie kann ich beide kombinieren, damit ich beim Empfang einer Nachricht auf dem Server von einem Client diese Nachricht an alle Benutzer außer dem Benutzer sende, der die Nachricht sendet?
socket.on('cursor', function(data) {
io.sockets.emit('response', data);
});
Muss ich es hacken, indem ich die Client-ID mit der Nachricht sende und dann auf der Client-Seite überprüfe, oder gibt es einen einfacheren Weg?
javascript
node.js
socket.io
switz
quelle
quelle
io
Here.onlysocket
// sending to all clients except sender
, wofür zu verwenden// sending a response to sender client only
?socket.to('others').emit('an event', { some: 'data' });
auch Sendungen in einem Raum.Aus der @ LearningRPG-Antwort, jedoch mit 1.0:
Um @Crashalot Kommentar zu beantworten,
socketid
kommt von:quelle
socketid
zum Senden an eine einzelne Steckdose?socket.id
von Ihrem Socket-Objekt.Hier ist eine vollständigere Antwort darauf, was sich von 0.9.x auf 1.x geändert hat.
Ich wollte den Beitrag von @soyuka bearbeiten, aber meine Bearbeitung wurde durch Peer-Review abgelehnt.
quelle
Broadcast.emit sendet die Nachricht an alle anderen Clients (außer an den Absender).
quelle
Cheatsheet ausgeben
quelle
Für Namespaces in Räumen ist das Schleifen der Liste der Clients in einem Raum (ähnlich der Antwort von Nav) einer von nur zwei Ansätzen, die ich gefunden habe und die funktionieren werden. Die andere ist ausschließen zu verwenden. Z.B
quelle
Andere Fälle
quelle
Die Liste für weitere Dokumentation wurde aktualisiert.
Hoffe das hilft.
quelle
Verwenden Sie diese Codierung
Dieses socket.broadcast.emit () gibt alles in der Funktion aus, außer an den Server, der sendet
quelle
io
hinein, wenn der Rückruf in einer anderen Datei definiert istio
als globalIch benutze Namespaces und Räume - ich habe gefunden
wo arbeiten
nicht
(Sollte jemand anderes mit diesem Problem konfrontiert sein)
quelle