12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- var app = require('express')();
- var http = require('http').Server(app);
- var io = require('socket.io')(http);
- var net = require('net');
- var queue = []
- app.get('*', function(req, res) {
- if ( req.url == '/' ) {
- res.sendFile(__dirname + '/visualization_server.html');
- } else if ( req.url.match(/\.js$/) || req.url.match(/\.html$/) ) {
- res.sendFile(__dirname + req.url);
- }
- });
- io.on('connection', function(socket){
- console.log('A user connected!');
-
- socket.on('message', function(msg) {
- queue.push(msg);
- })
- });
- http.listen(9696, function() {
- console.log('Listening for user on port 9696');
- });
- // Create a server instance, and chain the listen function to it
- // The function passed to net.createServer() becomes the event handler for the 'connection' event
- // The sock object the callback function receives UNIQUE for each connection
- net.createServer(function(sock) {
-
- // We have a connection - a socket object is assigned to the connection automatically
- console.log('CONNECTED: ' + sock.remoteAddress +':'+ sock.remotePort);
-
- // Add a 'data' event handler to this instance of socket
- sock.on('data', function(data) {
-
- String(data).split('\n').forEach(function(entry) {
- if (entry != '') {
- io.emit('msg', entry);
- }
- })
-
- });
-
- // Add a 'close' event handler to this instance of socket
- sock.on('close', function(data) {
- console.log('CLOSED: ' + sock.remoteAddress +' '+ sock.remotePort);
- });
-
- sock.on('error', function(error) {
- console.log('ERROR: ');
- });
-
- setInterval(function() {
- while (true) {
- if (queue.length == 0) {
- break;
- }
- sock.write(queue.pop() + '\n');
- }
- }, 5)
-
- }).listen(9999, '127.0.0.1');
- console.log('Listening for simulator on localhost:9999');
|