aboutsummaryrefslogtreecommitdiffstats
path: root/rogue-server.js
diff options
context:
space:
mode:
authorMatt Kohls <mattkohls13@gmail.com>2019-10-29 00:05:34 -0400
committerMatt Kohls <mattkohls13@gmail.com>2019-10-29 00:05:34 -0400
commitc6f4969b766c10674911d6fed034cc792333dc23 (patch)
tree7ce944e0d7d3003d3496787b7095a6251cdf8993 /rogue-server.js
parentae7f2b5ef9c724a2e346e351cb9bd7906c236361 (diff)
downloadrogue.js-c6f4969b766c10674911d6fed034cc792333dc23.tar.gz
rogue.js-c6f4969b766c10674911d6fed034cc792333dc23.tar.bz2
rogue.js-c6f4969b766c10674911d6fed034cc792333dc23.zip
Starting to add bits for the server
Really not excited about the quality of example code out in the wild to learn from
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);