Node.js WebSocket-Broadcast
Ich bin mit dem ws-Bibliothek für WebSockets im Node.js und
Ich versuche das Beispiel aus der Bibliothek Beispiele:
var sys = require("sys"),
ws = require("./ws");
ws.createServer(function (websocket) {
websocket.addListener("connect", function (resource) {
//emitted after handshake
sys.debug("connect: " + resource);
//server closes connection after 10s, will also get "close" event
setTimeout(websocket.end, 10 * 1000);
}).addListener("data", function (data) {
//handle incoming data
sys.debug(data);
//send data to client
websocket.write("Thanks!");
}).addListener("close", function () {
//emitted when server or client closes connection
sys.debug("close");
});
}).listen(8080);
Alles OK. Es funktioniert, aber es laufen 3 clients, zum Beispiel, und das senden von "Hallo!" von einem machen der server nur Antworten "Danke!" an den client die Nachricht gesendet hat, nicht auf alle.
Wie kann ich die Sendung "Danke!" an alle verbundenen clients, wenn jemand sendet "Hallo!"?
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, senden Sie an alle Kunden, die Sie haben, den überblick zu behalten. Hier ist ein Beispiel:
War ich in der Lage, um es an die broadcast an alle clients, aber es ist nicht stark getestet, für alle Fälle. Das Allgemeine Konzept sollte Ihnen den Einstieg zwar.
BEARBEITEN: By the way ich bin nicht sicher, was das 10-Sekunden-schließen ist, so habe ich kommentiert es aus. Es ist ziemlich nutzlos, wenn Sie versuchen, eine broadcast an alle clients, da Sie einfach immer getrennt.
Ich würde Ihnen empfehlen,socket.io. Es hat Beispiel web-chat-Funktionalität out of the box und bietet auch Abstraktionsschicht von der socket-Technologie auf die Clients (WebSockets unterstützt von Safari, Chrome, Opera und Firefox, aber deaktiviert im Firefox und Opera jetzt wegen Sicherheitslücken in der ws-Protokoll).