aboutsummaryrefslogtreecommitdiffstats
path: root/rogue-server.js
diff options
context:
space:
mode:
Diffstat (limited to 'rogue-server.js')
-rw-r--r--rogue-server.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/rogue-server.js b/rogue-server.js
new file mode 100644
index 0000000..a8d553a
--- /dev/null
+++ b/rogue-server.js
@@ -0,0 +1,44 @@
+/*
+ * Server for rogue.js
+ *
+ * Matt Kohls
+ * 2019
+ * GPL3
+ */
+
+const http = require('http');
+const WebSocket = require('ws');
+const uuid = require('uuid/v4');
+
+// Used to keep track of all the players and their connection
+const players = new Map();
+
+const httpServer = http.createServer();
+const wsServer = new WebSocket.Server({ noServer: true });
+
+wsServer.on('connection', function connection(ws, request) {
+ players.set(ws, uuid());
+ console.log(new Date().toUTCString() + ' | ' + players.get(ws) + ' joins');
+
+ ws.on('open', function join() {
+ // Do things on an open, doesn't seem to get hit though
+ });
+
+ ws.on('message', function message(msg) {
+ // Do thing with message from client
+ console.log(new Date().toUTCString() + ' | ' + players.get(ws) + ' says \"' + msg + '\"');
+ });
+
+ ws.on('close', function leave() {
+ console.log(new Date().toUTCString() + ' | ' + players.get(ws) + ' leaves');
+ clients.delete(ws);
+ });
+});
+
+httpServer.on('upgrade', function upgrade(request, socket, head) {
+ wsServer.handleUpgrade(request, socket, head, function done(ws) {
+ wsServer.emit('connection', ws, request);
+ });
+});
+
+httpServer.listen(8080);