Use express instead of finalhandler & serve-static
This commit is contained in:
parent
28e8f611f2
commit
a9b9e8e895
30
client.js
30
client.js
@ -4,9 +4,9 @@ var io = require("socket.io-client");
|
|||||||
var client = require("./src/game-client");
|
var client = require("./src/game-client");
|
||||||
var config = require("./config.json");
|
var config = require("./config.json");
|
||||||
|
|
||||||
function run(flag) {
|
function run(port, flag) {
|
||||||
client.renderer = flag ? require("./src/mode/mode-god") : require("./src/mode/mode-user");
|
client.renderer = flag ? require("./src/mode/mode-god") : require("./src/mode/mode-user");
|
||||||
client.connectGame("//" + window.location.hostname + ":" + config.ws_port, $("#name").val(), function(success, msg) {
|
client.connectGame("//" + window.location.hostname + ":" + port, $("#name").val(), function(success, msg) {
|
||||||
if (success) {
|
if (success) {
|
||||||
$("#main-ui").fadeIn(1000);
|
$("#main-ui").fadeIn(1000);
|
||||||
$("#begin, #wasted").fadeOut(1000);
|
$("#begin, #wasted").fadeOut(1000);
|
||||||
@ -18,13 +18,21 @@ function run(flag) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
var error = $("#error");
|
var err = $("#error");
|
||||||
if (!window.WebSocket) {
|
if (!window.WebSocket) {
|
||||||
error.text("Your browser does not support WebSockets!");
|
err.text("Your browser does not support WebSockets!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
error.text("Loading... Please wait"); //TODO: show loading screen
|
err.text("Loading... Please wait"); //TODO: show loading screen
|
||||||
var socket = io("//" + window.location.hostname + ":" + config.ws_port, {
|
$.ajax("/port", {
|
||||||
|
type: "get",
|
||||||
|
dataType: "text",
|
||||||
|
error: function(xhr, status, error) {
|
||||||
|
console.log("Error");
|
||||||
|
},
|
||||||
|
success: function(data, status, xhr) {
|
||||||
|
var port = data;
|
||||||
|
var socket = io("//" + window.location.hostname + ":" + port, {
|
||||||
forceNew: true,
|
forceNew: true,
|
||||||
upgrade: false,
|
upgrade: false,
|
||||||
transports: ["websocket"]
|
transports: ["websocket"]
|
||||||
@ -34,19 +42,21 @@ $(function() {
|
|||||||
});
|
});
|
||||||
socket.on("pongs", function() {
|
socket.on("pongs", function() {
|
||||||
socket.disconnect();
|
socket.disconnect();
|
||||||
error.text("All done, have fun!");
|
err.text("All done, have fun!");
|
||||||
$("#name").keypress(function(evt) {
|
$("#name").keypress(function(evt) {
|
||||||
if (evt.which === 13) run();
|
if (evt.which === 13) run();
|
||||||
});
|
});
|
||||||
$(".start").removeAttr("disabled").click(function(evt) {
|
$(".start").removeAttr("disabled").click(function(evt) {
|
||||||
run();
|
run(port);
|
||||||
});
|
});
|
||||||
$(".spectate").removeAttr("disabled").click(function(evt) {
|
$(".spectate").removeAttr("disabled").click(function(evt) {
|
||||||
run(true);
|
run(port, true);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
socket.on("connect_error", function() {
|
socket.on("connect_error", function() {
|
||||||
error.text("Cannot connect with server. This probably is due to misconfigured proxy server. (Try using a different browser)");
|
err.text("Cannot connect with server. This probably is due to misconfigured proxy server. (Try using a different browser)");
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
//Event listeners
|
//Event listeners
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
{
|
{
|
||||||
"hostname": "0.0.0.0",
|
"port": 8080,
|
||||||
"http_port": 8080,
|
|
||||||
"ws_port": 8081,
|
|
||||||
"bots": 5,
|
"bots": 5,
|
||||||
"consts": {
|
"consts": {
|
||||||
"GRID_COUNT": 100,
|
"GRID_COUNT": 100,
|
||||||
|
@ -23,11 +23,10 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/stevenjoezhang/paper.io",
|
"homepage": "https://github.com/stevenjoezhang/paper.io",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"finalhandler": "^1.1.1",
|
"browserify": "^16.2.3",
|
||||||
"serve-static": "^1.13.2",
|
"express": "^4.16.4",
|
||||||
"socket.io": "^2.2.0",
|
"socket.io": "^2.2.0",
|
||||||
"socket.io-client": "^2.2.0",
|
"socket.io-client": "^2.2.0",
|
||||||
"browserify": "^16.2.3",
|
|
||||||
"uglify-es": "^3.3.9"
|
"uglify-es": "^3.3.9"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
63
server.js
63
server.js
@ -1,45 +1,32 @@
|
|||||||
|
var express = require("express");
|
||||||
|
var app = express();
|
||||||
|
var path = require("path");
|
||||||
|
var server = require("http").createServer(app);
|
||||||
|
var io = require("socket.io")(server);
|
||||||
|
var exec = require('child_process').exec;
|
||||||
|
|
||||||
var config = require("./config.json");
|
var config = require("./config.json");
|
||||||
|
var port = process.env.PORT || config.port || 8080;
|
||||||
|
|
||||||
if (!(config.http_port >= 0 && config.http_port < 65536 && config.http_port % 1 === 0)) {
|
if (!(config.port >= 0 && config.port < 65536 && config.port % 1 === 0)) {
|
||||||
console.error("[ERROR] http_port argument must be an integer >= 0 and < 65536.");
|
console.error("[ERROR] `port` argument must be an integer >= 0 and < 65536. Default value will be used.");
|
||||||
process.exit();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(config.ws_port >= 0 && config.ws_port < 65536 && config.ws_port % 1 === 0)) {
|
server.listen(port, () => {
|
||||||
console.error("[ERROR] ws_port argument must be an integer >= 0 and < 65536.");
|
console.log("Server listening at port %d", port);
|
||||||
process.exit();
|
});
|
||||||
}
|
//Routing
|
||||||
|
app.use(express.static(path.join(__dirname, "public")));
|
||||||
const finalhandler = require("finalhandler"),
|
app.get("/port", (req, res) => {
|
||||||
http = require("http"),
|
var ans = process.env.PORT ? 443 : port;
|
||||||
serveStatic = require("serve-static"),
|
res.end(ans.toString());
|
||||||
exec = require('child_process').exec;
|
|
||||||
//Serve up public/ folder
|
|
||||||
var serve = serveStatic("public/", {
|
|
||||||
"setHeaders": function(res, path) {
|
|
||||||
res.setHeader("Cache-Control", "public, max-age=0");
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
//Create server
|
var Game = require("./src/game-server.js");
|
||||||
try {
|
|
||||||
http.createServer(function onRequest(req, res) {
|
|
||||||
serve(req, res, finalhandler(req, res));
|
|
||||||
}).listen(config.http_port, config.hostname);
|
|
||||||
}
|
|
||||||
catch (e) {
|
|
||||||
console.error("[ERROR] hostname argument invalid.");
|
|
||||||
process.exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
var server = http.createServer();
|
|
||||||
server.listen(config.ws_port);
|
|
||||||
var io = require("socket.io")(server);
|
|
||||||
io.set("transports", ["websocket"]);
|
|
||||||
const Game = require("./src/game-server.js");
|
|
||||||
var game = new Game();
|
var game = new Game();
|
||||||
io.on("connection", function(socket) {
|
io.set("transports", ["websocket"]);
|
||||||
socket.on("hello", function(data, fn) {
|
io.on("connection", (socket) => {
|
||||||
|
socket.on("hello", (data, fn) => {
|
||||||
//TODO: error checking.
|
//TODO: error checking.
|
||||||
if (data.god && game.addGod(socket)) {
|
if (data.god && game.addGod(socket)) {
|
||||||
fn(true);
|
fn(true);
|
||||||
@ -49,18 +36,18 @@ io.on("connection", function(socket) {
|
|||||||
else if (!game.addPlayer(socket, data.name)) fn(false, "There're too many platers!");
|
else if (!game.addPlayer(socket, data.name)) fn(false, "There're too many platers!");
|
||||||
else fn(true);
|
else fn(true);
|
||||||
});
|
});
|
||||||
socket.on("pings", function(fn) {
|
socket.on("pings", (fn) => {
|
||||||
socket.emit("pongs");
|
socket.emit("pongs");
|
||||||
socket.disconnect();
|
socket.disconnect();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
setInterval(function() {
|
setInterval(() => {
|
||||||
game.tickFrame();
|
game.tickFrame();
|
||||||
}, 1000 / 60);
|
}, 1000 / 60);
|
||||||
|
|
||||||
for (var i = 0; i < parseInt(config.bots); i++) {
|
for (var i = 0; i < parseInt(config.bots); i++) {
|
||||||
exec("node paper-io-bot.js ws://localhost:" + config.ws_port, function(error, stdout, stderr) {
|
exec("node paper-io-bot.js ws://localhost:" + port, (error, stdout, stderr) => {
|
||||||
if (error) {
|
if (error) {
|
||||||
console.error("error: " + error);
|
console.error("error: " + error);
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user