mirror of
https://github.com/socketio/socket.io.git
synced 2026-04-30 03:00:39 -04:00
64 lines
1.5 KiB
JavaScript
64 lines
1.5 KiB
JavaScript
var http = require('http'),
|
|
url = require('url'),
|
|
fs = require('fs'),
|
|
io = require('../'),
|
|
sys = require('sys'),
|
|
|
|
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('<h1>Welcome. Try the <a href="/chat.html">chat</a> example.</h1>');
|
|
res.end();
|
|
break;
|
|
|
|
case '/json.js':
|
|
case '/chat.html':
|
|
fs.readFile(__dirname + path, function(err, data){
|
|
if (err) return send404(res);
|
|
res.writeHead(200, {'Content-Type': path == 'json.js' ? 'text/javascript' : 'text/html'})
|
|
res.write(data, 'utf8');
|
|
res.end();
|
|
});
|
|
break;
|
|
|
|
default: send404(res);
|
|
}
|
|
}),
|
|
|
|
send404 = function(res){
|
|
res.writeHead(404);
|
|
res.write('404');
|
|
res.end();
|
|
};
|
|
|
|
server.listen(8080, {
|
|
transportOptions: {
|
|
'xhr-polling': {
|
|
closeTimeout: 1000 * 60 * 5
|
|
}
|
|
}
|
|
});
|
|
|
|
// socket.io, I choose you
|
|
// simplest chat application evar
|
|
var io = io.listen(server),
|
|
buffer = [];
|
|
|
|
io.on('connection', function(client){
|
|
client.send({ buffer: buffer });
|
|
client.broadcast({ announcement: client.sessionId + ' connected' });
|
|
|
|
client.on('message', function(message){
|
|
var msg = { message: [client.sessionId, message] };
|
|
buffer.push(msg);
|
|
if (buffer.length > 15) buffer.shift();
|
|
client.broadcast(msg);
|
|
});
|
|
|
|
client.on('disconnect', function(){
|
|
client.broadcast({ announcement: client.sessionId + ' disconnected' });
|
|
});
|
|
}); |