var http = require('http'), url = require('url'), fs = require('fs'), io = require('../socket.io'), sys = require('sys'), send404 = function(res){ res.writeHead(404); res.write('404'); res.end(); }, server = http.createServer(function(req, res){ // your normal server code var path = url.parse(req.url).pathname; switch (path){ case '/': res.writeHead(200, {'Content-Type': 'text/html'}); res.write('

Welcome. Try the chat example.

'); res.end(); break; default: if (/\.(js|html|swf)$/.test(path)){ try { var swf = path.substr(-4) === '.swf'; res.writeHead(200, {'Content-Type': swf ? 'application/x-shockwave-flash' : ('text/' + (path.substr(-3) === '.js' ? 'javascript' : 'html'))}); res.write(fs.readFileSync(__dirname + path, swf ? 'binary' : 'utf8'), swf ? 'binary' : 'utf8'); res.end(); } catch(e){ send404(res); } break; } send404(res); break; } }); server.listen(8080); // socket.io, I choose you // simplest chat application evar var buffer = [], json = JSON.stringify; io.listen(server, { onClientConnect: function(client){ client.send(json({ buffer: buffer })); client.broadcast(json({ announcement: client.sessionId + ' connected' })); }, onClientDisconnect: function(client){ client.broadcast(json({ announcement: client.sessionId + ' disconnected' })); }, onClientMessage: function(message, client){ var msg = { message: [client.sessionId, message] }; buffer.push(msg); if (buffer.length > 15) buffer.shift(); client.broadcast(json(msg)); } });