summaryrefslogtreecommitdiff
path: root/server.js
diff options
context:
space:
mode:
Diffstat (limited to 'server.js')
-rwxr-xr-xserver.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/server.js b/server.js
new file mode 100755
index 0000000..996bb92
--- /dev/null
+++ b/server.js
@@ -0,0 +1,42 @@
+#!/usr/bin/env node
+
+const net = require("net");
+const util = require("util");
+const protocol = require("./protocol.js");
+
+if (process.argv.length != 4) {
+ console.log("Usage: ./server.js <hostname> <port>");
+ console.log("Pass address of doomrooms server as arguments.");
+ process.exit(1);
+}
+
+const GAME_ID = "tictactoe-tom";
+const GAME_NAME = "Tic Tac Toe";
+
+function messageHandler(msg) {
+ console.log("Message: " + util.inspect(msg));
+}
+
+async function registerGame(conn) {
+ let msg = await conn.send(new protocol.Message("make-game", GAME_ID, GAME_NAME));
+ if (msg.err) {
+ msg = await conn.send(new protocol.Message("attach-game", GAME_ID, false));
+ if (msg.err) {
+ console.log("Game already managed by another gameserver, and not forcing");
+ process.exit(1);
+ }
+ }
+ console.log(msg);
+}
+
+const conn = new protocol.Connection(net.createConnection(+process.argv[3], process.argv[2]), messageHandler);
+conn.conn.on("connect", () => {
+ console.log("Connected to roomserver");
+
+ conn.conn.on("end", () => {
+ console.log("Connection with roomserver unexpectedly closed!");
+ process.exit(1);
+ });
+
+ registerGame(conn);
+});