From bac40c1c044adcfa6938a5a9d500606d9818e176 Mon Sep 17 00:00:00 2001 From: idlewinn Date: Sun, 15 Mar 2020 04:18:26 -0700 Subject: [PATCH 1/4] enable volatile broadcasts --- src/index.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/index.ts b/src/index.ts index 92f65dd..0f2346f 100755 --- a/src/index.ts +++ b/src/index.ts @@ -48,6 +48,11 @@ io.on("connection", socket => { } ); + socket.on("server-volatile-broadcast", (roomID: string, encryptedData: ArrayBuffer, iv: Uint8Array) => { + console.log(`${socket.id} sends volatile update to ${roomID}`); + socket.volatile.broadcast.to(roomID).emit("client-broadcast", encryptedData, iv); + }); + socket.on("disconnecting", () => { const rooms = io.sockets.adapter.rooms; for (const roomID in socket.rooms) { From c39832dc2c4ca763195b67fbd36929eac02f3388 Mon Sep 17 00:00:00 2001 From: idlewinn Date: Sun, 15 Mar 2020 04:23:26 -0700 Subject: [PATCH 2/4] lint --- src/index.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/index.ts b/src/index.ts index 0f2346f..9ea40b4 100755 --- a/src/index.ts +++ b/src/index.ts @@ -48,10 +48,15 @@ io.on("connection", socket => { } ); - socket.on("server-volatile-broadcast", (roomID: string, encryptedData: ArrayBuffer, iv: Uint8Array) => { - console.log(`${socket.id} sends volatile update to ${roomID}`); - socket.volatile.broadcast.to(roomID).emit("client-broadcast", encryptedData, iv); - }); + socket.on( + "server-volatile-broadcast", + (roomID: string, encryptedData: ArrayBuffer, iv: Uint8Array) => { + console.log(`${socket.id} sends volatile update to ${roomID}`); + socket.volatile.broadcast + .to(roomID) + .emit("client-broadcast", encryptedData, iv); + } + ); socket.on("disconnecting", () => { const rooms = io.sockets.adapter.rooms; From 230ccd1baf081a64789c05ce2bbbb8daf04cb393 Mon Sep 17 00:00:00 2001 From: idlewinn Date: Sun, 15 Mar 2020 19:10:43 -0700 Subject: [PATCH 3/4] add debug library and replace console.logs --- package.json | 4 +++- src/index.ts | 15 ++++++++++----- yarn.lock | 7 ++++++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index f1451f0..d53536c 100755 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ }, "homepage": "https://github.com/excalidraw/excalidraw-room#readme", "dependencies": { - "@types/socket.io": "^2.1.4", + "debug": "^4.1.1", "eslint": "6.8.0", "eslint-config-prettier": "6.10.0", "eslint-plugin-prettier": "3.1.2", @@ -33,6 +33,8 @@ "socket.io": "^2.3.0" }, "devDependencies": { + "@types/socket.io": "^2.1.4", + "@types/debug": "^4.1.5", "@types/express": "^4.17.3", "@types/node": "^13.9.0", "typescript": "^3.8.3" diff --git a/src/index.ts b/src/index.ts index 9ea40b4..351b6ad 100755 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,11 @@ import express from "express"; import http, { ServerResponse } from "http"; import socketIO from "socket.io"; +import debug from "debug"; + +const serverDebug = debug("server"); +const ioDebug = debug("io"); +const socketDebug = debug("socket"); const app = express(); const port = process.env.PORT || 80; // default port to listen @@ -8,7 +13,7 @@ const port = process.env.PORT || 80; // default port to listen const server = http.createServer(app); server.listen(port, () => { - console.log(`listening on port: ${port}`); + serverDebug(`listening on port: ${port}`); }); const io = socketIO(server, { @@ -24,10 +29,10 @@ const io = socketIO(server, { }); io.on("connection", socket => { - console.log("connection established!"); + ioDebug("connection established!"); io.to(`${socket.id}`).emit("init-room"); socket.on("join-room", roomID => { - console.log(`${socket.id} has joined ${roomID}`); + socketDebug(`${socket.id} has joined ${roomID}`); socket.join(roomID); if (io.sockets.adapter.rooms[roomID].length <= 1) { io.to(`${socket.id}`).emit("first-in-room"); @@ -43,7 +48,7 @@ io.on("connection", socket => { socket.on( "server-broadcast", (roomID: string, encryptedData: ArrayBuffer, iv: Uint8Array) => { - console.log(`${socket.id} sends update to ${roomID}`); + socketDebug(`${socket.id} sends update to ${roomID}`); socket.broadcast.to(roomID).emit("client-broadcast", encryptedData, iv); } ); @@ -51,7 +56,7 @@ io.on("connection", socket => { socket.on( "server-volatile-broadcast", (roomID: string, encryptedData: ArrayBuffer, iv: Uint8Array) => { - console.log(`${socket.id} sends volatile update to ${roomID}`); + socketDebug(`${socket.id} sends volatile update to ${roomID}`); socket.volatile.broadcast .to(roomID) .emit("client-broadcast", encryptedData, iv); diff --git a/yarn.lock b/yarn.lock index 82e49e3..cc9ab46 100644 --- a/yarn.lock +++ b/yarn.lock @@ -38,6 +38,11 @@ dependencies: "@types/node" "*" +"@types/debug@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" + integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== + "@types/express-serve-static-core@*": version "4.17.2" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.2.tgz#f6f41fa35d42e79dbf6610eccbb2637e6008a0cf" @@ -371,7 +376,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@^4.0.1, debug@~4.1.0: +debug@^4.0.1, debug@^4.1.1, debug@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== From 2a680dff53dba09bfecbaba4e8822bcdfe5db0a1 Mon Sep 17 00:00:00 2001 From: idlewinn Date: Mon, 16 Mar 2020 23:41:51 -0700 Subject: [PATCH 4/4] pin dependency versions --- package.json | 16 ++++++++-------- yarn.lock | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index d53536c..42a7a26 100755 --- a/package.json +++ b/package.json @@ -24,20 +24,20 @@ }, "homepage": "https://github.com/excalidraw/excalidraw-room#readme", "dependencies": { - "debug": "^4.1.1", + "debug": "4.1.1", "eslint": "6.8.0", "eslint-config-prettier": "6.10.0", "eslint-plugin-prettier": "3.1.2", - "express": "^4.17.1", + "express": "4.17.1", "prettier": "1.19.1", - "socket.io": "^2.3.0" + "socket.io": "2.3.0" }, "devDependencies": { - "@types/socket.io": "^2.1.4", - "@types/debug": "^4.1.5", - "@types/express": "^4.17.3", - "@types/node": "^13.9.0", - "typescript": "^3.8.3" + "@types/socket.io": "2.1.4", + "@types/debug": "4.1.5", + "@types/express": "4.17.3", + "@types/node": "13.9.0", + "typescript": "3.8.3" }, "eslintConfig": { "extends": [ diff --git a/yarn.lock b/yarn.lock index cc9ab46..2242b19 100644 --- a/yarn.lock +++ b/yarn.lock @@ -38,7 +38,7 @@ dependencies: "@types/node" "*" -"@types/debug@^4.1.5": +"@types/debug@4.1.5": version "4.1.5" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== @@ -51,7 +51,7 @@ "@types/node" "*" "@types/range-parser" "*" -"@types/express@^4.17.3": +"@types/express@4.17.3": version "4.17.3" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.3.tgz#38e4458ce2067873b09a73908df488870c303bd9" integrity sha512-I8cGRJj3pyOLs/HndoP+25vOqhqWkAZsWMEmq1qXy/b/M3ppufecUwaK2/TVDVxcV61/iSdhykUjQQ2DLSrTdg== @@ -65,7 +65,7 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d" integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw== -"@types/node@*", "@types/node@^13.9.0": +"@types/node@*", "@types/node@13.9.0": version "13.9.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.0.tgz#5b6ee7a77faacddd7de719017d0bc12f52f81589" integrity sha512-0ARSQootUG1RljH2HncpsY2TJBfGQIKOOi7kxzUY6z54ePu/ZD+wJA8zI2Q6v8rol2qpG/rvqsReco8zNMPvhQ== @@ -83,7 +83,7 @@ "@types/express-serve-static-core" "*" "@types/mime" "*" -"@types/socket.io@^2.1.4": +"@types/socket.io@2.1.4": version "2.1.4" resolved "https://registry.yarnpkg.com/@types/socket.io/-/socket.io-2.1.4.tgz#674e7bc193c5ccdadd4433f79f3660d31759e9ac" integrity sha512-cI98INy7tYnweTsUlp8ocveVdAxENUThO0JsLSCs51cjOP2yV5Mqo5QszMDPckyRRA+PO6+wBgKvGvHUCc23TQ== @@ -376,7 +376,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@^4.0.1, debug@^4.1.1, debug@~4.1.0: +debug@4.1.1, debug@^4.0.1, debug@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== @@ -602,7 +602,7 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= -express@^4.17.1: +express@4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== @@ -1340,7 +1340,7 @@ socket.io-parser@~3.4.0: debug "~4.1.0" isarray "2.0.1" -socket.io@^2.3.0: +socket.io@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== @@ -1480,7 +1480,7 @@ type-is@~1.6.17, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typescript@^3.8.3: +typescript@3.8.3: version "3.8.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==