arkadiuszpaluszek
Mitglied
Hallo!
Ich versuche gerade das erste einfache Skript für Real-Time-Applications zu schreiben und arbeite mich hierfür in Websockets ein. Habe dabei ein Problem mit einer Funktion auf der Serverseite:
Das Problem liegt hier scheinbar in der Funktion Broadcast, und zwar funktioniert hier scheinbar die Iteration durch das Objekt this.clients nicht. Die Konsole gibt hier noch "Habe zum Versand bekommen..." aus, die zweite console.log Anweisung innerhalb der Schleife ("Ich spreche Client soundso an") wird nicht mehr ausgeführt. Hat jemand Erfahrung mit Websockets? Wo liegt das Problem?
Ich versuche gerade das erste einfache Skript für Real-Time-Applications zu schreiben und arbeite mich hierfür in Websockets ein. Habe dabei ein Problem mit einer Funktion auf der Serverseite:
Javascript:
var WebSocketServer = require('ws').Server
wss = new WebSocketServer({ port: 9001 });
// Broadcast method to send message to all the users
wss.broadcast = function broadcast(data) {
console.log("Habe zum Versand bekommen: " + data);
for(var i in this.clients) {
console.log("Ich spreche Client " + i + "an.");
this.clients[i].send(data);
}
};
// Websocket connection open handler
wss.on('connection', function connection(ws) {
// Websocket message receive handler
ws.on('message', function incoming(message){
// Broadcasting the message to all users
wss.broadcast(message);
console.log('Folgende von einem Client erhaltene Nachricht wird nun an alle geschickt:' + message);
});
console.log('Ein Client hat die Verbindung aufgebaut');
// When user is connected sending the current slide information for the users who joined later
ws.send("Verbindung aufgebaut");
});
Das Problem liegt hier scheinbar in der Funktion Broadcast, und zwar funktioniert hier scheinbar die Iteration durch das Objekt this.clients nicht. Die Konsole gibt hier noch "Habe zum Versand bekommen..." aus, die zweite console.log Anweisung innerhalb der Schleife ("Ich spreche Client soundso an") wird nicht mehr ausgeführt. Hat jemand Erfahrung mit Websockets? Wo liegt das Problem?