papercats/server.js

45 lines
1.2 KiB
JavaScript
Raw Normal View History

2019-01-15 10:42:15 -05:00
var port = parseInt(process.argv[3]) || 8080;
2019-02-03 01:49:23 -05:00
var hostname = process.argv[2] || "0.0.0.0";
2019-01-15 10:42:15 -05:00
var finalhandler = require("finalhandler");
var http = require("http");
var serveStatic = require("serve-static");
// Serve up public/ftp folder
2019-01-15 10:42:15 -05:00
var serve = serveStatic("public/", {
"setHeaders": setHeaders
});
2017-02-28 02:20:32 -05:00
function setHeaders(res, path) {
2019-01-15 10:42:15 -05:00
res.setHeader("Cache-Control", "public, max-age=0");
2017-02-28 02:20:32 -05:00
}
// Create server
2019-01-15 10:42:15 -05:00
var server = http.createServer(function onRequest(req, res) {
serve(req, res, finalhandler(req, res));
});
// Listen
2017-03-02 18:36:11 -05:00
server.listen(port, hostname);
server = http.createServer();
2019-01-16 03:57:36 -05:00
2019-01-15 10:42:15 -05:00
var io = require("socket.io")(server);
io.set("transports", ["websocket"]);
2019-01-16 03:57:36 -05:00
var Game = require("./src/game-server.js");
var games = [new Game()];
2019-01-15 10:42:15 -05:00
io.on("connection", function(socket) {
socket.on("hello", function(data, fn) {
//TODO: error checking.
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);
});
socket.on("pings", function(fn) {
socket.emit("pongs");
socket.disconnect();
});
});
server.listen(8081);
2017-02-25 23:25:06 -05:00
function tick() {
2019-01-15 10:42:15 -05:00
games[0].tickFrame();
setTimeout(tick, 1000 / 60);
2017-02-25 23:25:06 -05:00
}
tick();