syndilights/displayclienthtml/websocket_demo/ws_server.js

51 lines
1.2 KiB
JavaScript

var count = 0;
var clients = {};
var http = require('http');
var server = http.createServer(function(request, response) {});
server.listen(1234, function() {
console.log((new Date()) + ' Server is listening on port 1234');
});
var WebSocketServer = require('websocket').server;
wsServer = new WebSocketServer({
httpServer: server
});
wsServer.on('request', function(r){
var connection = r.accept('echo-protocol', r.origin);
// Specific id for this client & increment count
var id = count++;
// // Store the connection method so we can loop through & contact all clients
clients[id] = connection
console.log((new Date()) + ' Connection accepted [' + id + ']');
// Create event listener
connection.on('message', function(message) {
// The string message that was sent to us
var msgString = message.utf8Data;
// Loop through all clients
for(var i in clients){
// Send a message to the client with the message
clients[i].sendUTF(msgString);
}
});
// Create event listener for close
connection.on('close', function(reasonCode, description) {
delete clients[id];
console.log((new Date()) + ' Peer ' + connection.remoteAddress + ' disconnected.');
});
});