diff --git a/utilities/package-lock.json b/utilities/package-lock.json index 8fe161f1a..5ff7612c2 100644 --- a/utilities/package-lock.json +++ b/utilities/package-lock.json @@ -15,8 +15,7 @@ "peer": "^0.6.1", "socket.io": "^4.4.1", "source-map": "^0.7.3", - "ua-parser-js": "^1.0.2", - "uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.6.0" + "ua-parser-js": "^1.0.2" } }, "node_modules/@maxmind/geoip2-node": { @@ -1288,10 +1287,6 @@ "uuid": "bin/uuid" } }, - "node_modules/uWebSockets.js": { - "version": "20.6.0", - "resolved": "git+ssh://git@github.com/uNetworking/uWebSockets.js.git#a58e810e47a23696410f6073c8c905dc38f75da5" - }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -2355,10 +2350,6 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, - "uWebSockets.js": { - "version": "git+ssh://git@github.com/uNetworking/uWebSockets.js.git#a58e810e47a23696410f6073c8c905dc38f75da5", - "from": "uWebSockets.js@github:uNetworking/uWebSockets.js#v20.6.0" - }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", diff --git a/utilities/package.json b/utilities/package.json index 79c8513a4..452c3fe00 100644 --- a/utilities/package.json +++ b/utilities/package.json @@ -24,7 +24,6 @@ "peer": "^0.6.1", "socket.io": "^4.4.1", "source-map": "^0.7.3", - "ua-parser-js": "^1.0.2", - "uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.6.0" + "ua-parser-js": "^1.0.2" } } diff --git a/utilities/servers/websocket.js b/utilities/servers/websocket.js index ab6a2c4d5..9334dd800 100644 --- a/utilities/servers/websocket.js +++ b/utilities/servers/websocket.js @@ -4,6 +4,7 @@ const uaParser = require('ua-parser-js'); const geoip2Reader = require('@maxmind/geoip2-node').Reader; var {extractPeerId} = require('./peerjs-server'); var wsRouter = express.Router(); +const UPDATE_EVENT = "UPDATE_SESSION"; const IDENTITIES = {agent: 'agent', session: 'session'}; const NEW_AGENT = "NEW_AGENT"; const NO_AGENTS = "NO_AGENT"; @@ -226,6 +227,16 @@ module.exports = { } }); + socket.on(UPDATE_EVENT, async (...args) => { + debug && console.log(`${socket.id} sent update event.`); + if (socket.identity !== IDENTITIES.session) { + debug && console.log('Ignoring update event.'); + return + } + socket.handshake.query.sessionInfo = {...socket.handshake.query.sessionInfo, ...args[0]}; + socket.to(socket.peerId).emit(UPDATE_EVENT, args[0]); + }); + socket.onAny(async (eventName, ...args) => { socket.lastMessageReceivedAt = Date.now(); if (socket.identity === IDENTITIES.session) {