papercats/server.js

49 lines
1.2 KiB
JavaScript
Raw Normal View History

//TODO: rename as "blockly.io".
2017-03-02 18:36:11 -05:00
var hostname = process.argv[2] || "0.0.0.0";
var port = parseInt(process.argv[3]) || 80;
var finalhandler = require('finalhandler');
var http = require('http');
var serveStatic = require('serve-static');
// Serve up public/ftp folder
var serve = serveStatic('public/', {'setHeaders': setHeaders});
2017-02-28 02:20:32 -05:00
function setHeaders(res, path) {
res.setHeader('Cache-Control', 'public, max-age=0');
2017-02-28 02:20:32 -05:00
}
// Create server
var server = http.createServer(function onRequest (req, res) {
2017-02-26 18:01:57 -05:00
serve(req, res, finalhandler(req, res));
});
// Listen
2017-03-02 18:36:11 -05:00
server.listen(port, hostname);
server = http.createServer();
var io = require('socket.io')(server);
2017-03-02 14:02:03 -05:00
io.set('transports', ['websocket']);
2017-02-28 02:20:32 -05:00
var Game = require('./game-server.js');
var games = [new Game()];
io.on('connection', function(socket){
socket.on("hello", function(data, fn) {
//TODO: error checking.
2017-03-03 16:52:59 -05:00
if (data.name && data.name.length > 32)
fn(false, "Your name is too long!");
else if (!games[0].addPlayer(socket, data.name))
fn(false, "Game is too full!");
else
fn(true);
});
2017-03-02 14:02:03 -05:00
socket.on("checkConn", function(fn) { fn(); });
});
server.listen(8081);
2017-02-25 23:25:06 -05:00
function tick() {
games[0].tickFrame();
2017-02-25 23:25:06 -05:00
setTimeout(tick, 1000 / 60);
}
tick();
2017-03-02 14:02:03 -05:00
//setTimeout(tick, 1000 / 60);