timesync
Version:
Time synchronization between peers
54 lines (44 loc) • 1.29 kB
JavaScript
/**
* Before you can run this example you will have to install a dependency:
*
* npm install socket.io
*/
var app = require('http').createServer(handler);
var io = require('socket.io')(app);
var fs = require('fs');
var path = require('path');
var PORT = 8081;
app.listen(PORT);
console.log('Server listening at http://localhost:' + PORT);
function handler (req, res) {
console.log('request', req.url);
if (req.url === '/timesync/timesync.js') {
res.setHeader('Content-Type', 'application/javascript');
return sendFile(path.join(__dirname, '../../../dist/timesync.js'), res);
}
if (req.url === '/' || req.url === 'index.html') {
return sendFile(__dirname + '/index.html', res);
}
res.writeHead(404);
res.end('Not found');
}
io.on('connection', function (socket) {
socket.on('timesync', function (data) {
console.log('message', data);
socket.emit('timesync', {
id: data && 'id' in data ? data.id : null,
result: Date.now()
});
});
});
function sendFile(filename, res) {
fs.readFile(filename,
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading ' + filename.split('/').pop());
}
res.writeHead(200);
res.end(data);
});
}