Merge branch '483-socket-io-migration' into develop

merge-requests/346/merge
Thomas Lynch 2 years ago
commit 85142e20c6
  1. 15
      lib/misc/socketio.js
  2. 96
      package-lock.json
  3. 4
      package.json

@ -4,17 +4,23 @@ const { redis: redisConfig } = require(__dirname+'/../../configs/secrets.js')
, { Boards } = require(__dirname+'/../../db/')
, roomRegex = /^(?<roomBoard>[a-z0-9]+)-(?<roomName>[a-z0-9-]+)$/i
, calcPerms = require(__dirname+'/../permission/calcperms.js')
, Permissions = require(__dirname+'/../permission/permissions.js');
, Permissions = require(__dirname+'/../permission/permissions.js')
, socketIO = require('socket.io')
, createAdapter = require('@socket.io/redis-adapter')
, Redis = require('ioredis');
module.exports = {
io: null, //null to begin with
connect: (server, sessionMiddleware) => {
const io = require('socket.io')(server);
const redisAdapter = require('socket.io-redis');
//create redis adapter
const io = socketIO(server)
, pubClient = new Redis(redisConfig)
, subClient = pubClient.duplicate();
io.adapter(createAdapter(pubClient, subClient));
//setup the middleware for sessions on socket
const sessionRefresh = require(__dirname+'/../middleware/permission/sessionrefresh.js');
io.adapter(redisAdapter({ ...redisConfig }));
io.use((socket, next) => {
sessionMiddleware(socket.request, socket.request, next);
});
@ -22,6 +28,7 @@ module.exports = {
sessionRefresh(socket.request, socket.request, next);
});
module.exports.io = io;
//start accepting connections
module.exports.startRooms();
},

96
package-lock.json generated

@ -11,6 +11,7 @@
"dependencies": {
"@fatchan/express-fileupload": "^1.4.2",
"@fatchan/gm": "^1.3.2",
"@socket.io/redis-adapter": "^7.2.0",
"bcrypt": "^5.0.1",
"big-bitfield": "^1.2.1",
"bull": "^3.29.3",
@ -52,7 +53,6 @@
"saslprep": "^1.0.3",
"semver": "^7.3.7",
"socket.io": "^4.5.0",
"socket.io-redis": "^6.1.1",
"socks-proxy-agent": "^6.2.0",
"uid-safe": "^2.1.5",
"unix-crypt-td-js": "^1.1.4"
@ -1430,6 +1430,20 @@
"@sinonjs/commons": "^1.7.0"
}
},
"node_modules/@socket.io/redis-adapter": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@socket.io/redis-adapter/-/redis-adapter-7.2.0.tgz",
"integrity": "sha512-/r6oF6Myz0K9uatB/pfCi0BhKg/KRMh1OokrqcjlNz6aq40WiXdFLRbHJQuwGHq/KvB+D6141K+IynbVxZGvhw==",
"dependencies": {
"debug": "~4.3.1",
"notepack.io": "~2.2.0",
"socket.io-adapter": "^2.4.0",
"uid2": "0.0.3"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/@tokenizer/token": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz",
@ -11273,24 +11287,6 @@
"node": ">= 0.10"
}
},
"node_modules/redis": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/redis/-/redis-3.1.2.tgz",
"integrity": "sha512-grn5KoZLr/qrRQVwoSkmzdbw6pwF+/rwODtrOr6vuBRiR/f3rjSTGupbF90Zpqm2oenix8Do6RV7pYEkGwlKkw==",
"dependencies": {
"denque": "^1.5.0",
"redis-commands": "^1.7.0",
"redis-errors": "^1.2.0",
"redis-parser": "^3.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/node-redis"
}
},
"node_modules/redis-commands": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz",
@ -12287,27 +12283,6 @@
"node": ">=10.0.0"
}
},
"node_modules/socket.io-redis": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/socket.io-redis/-/socket.io-redis-6.1.1.tgz",
"integrity": "sha512-jeaXe3TGKC20GMSlPHEdwTUIWUpay/L7m5+S9TQcOf22p9Llx44/RkpJV08+buXTZ8E+aivOotj2RdeFJJWJJQ==",
"deprecated": "This package has been renamed to '@socket.io/redis-adapter', please see the migration guide here: https://socket.io/docs/v4/redis-adapter/#migrating-from-socketio-redis",
"dependencies": {
"debug": "~4.3.1",
"notepack.io": "~2.2.0",
"redis": "^3.0.0",
"socket.io-adapter": "~2.2.0",
"uid2": "0.0.3"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/socket.io-redis/node_modules/socket.io-adapter": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.2.0.tgz",
"integrity": "sha512-rG49L+FwaVEwuAdeBRq49M97YI3ElVabJPzvHT9S6a2CWhDKnjSFasvwAwSYPRhQzfn4NtDIbCaGYgOCOU/rlg=="
},
"node_modules/socks": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz",
@ -15260,6 +15235,17 @@
"@sinonjs/commons": "^1.7.0"
}
},
"@socket.io/redis-adapter": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@socket.io/redis-adapter/-/redis-adapter-7.2.0.tgz",
"integrity": "sha512-/r6oF6Myz0K9uatB/pfCi0BhKg/KRMh1OokrqcjlNz6aq40WiXdFLRbHJQuwGHq/KvB+D6141K+IynbVxZGvhw==",
"requires": {
"debug": "~4.3.1",
"notepack.io": "~2.2.0",
"socket.io-adapter": "^2.4.0",
"uid2": "0.0.3"
}
},
"@tokenizer/token": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz",
@ -22873,17 +22859,6 @@
"resolve": "^1.1.6"
}
},
"redis": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/redis/-/redis-3.1.2.tgz",
"integrity": "sha512-grn5KoZLr/qrRQVwoSkmzdbw6pwF+/rwODtrOr6vuBRiR/f3rjSTGupbF90Zpqm2oenix8Do6RV7pYEkGwlKkw==",
"requires": {
"denque": "^1.5.0",
"redis-commands": "^1.7.0",
"redis-errors": "^1.2.0",
"redis-parser": "^3.0.0"
}
},
"redis-commands": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz",
@ -23641,25 +23616,6 @@
"debug": "~4.3.1"
}
},
"socket.io-redis": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/socket.io-redis/-/socket.io-redis-6.1.1.tgz",
"integrity": "sha512-jeaXe3TGKC20GMSlPHEdwTUIWUpay/L7m5+S9TQcOf22p9Llx44/RkpJV08+buXTZ8E+aivOotj2RdeFJJWJJQ==",
"requires": {
"debug": "~4.3.1",
"notepack.io": "~2.2.0",
"redis": "^3.0.0",
"socket.io-adapter": "~2.2.0",
"uid2": "0.0.3"
},
"dependencies": {
"socket.io-adapter": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.2.0.tgz",
"integrity": "sha512-rG49L+FwaVEwuAdeBRq49M97YI3ElVabJPzvHT9S6a2CWhDKnjSFasvwAwSYPRhQzfn4NtDIbCaGYgOCOU/rlg=="
}
}
},
"socks": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz",

@ -7,8 +7,9 @@
"dependencies": {
"@fatchan/express-fileupload": "^1.4.2",
"@fatchan/gm": "^1.3.2",
"big-bitfield": "^1.2.1",
"@socket.io/redis-adapter": "^7.2.0",
"bcrypt": "^5.0.1",
"big-bitfield": "^1.2.1",
"bull": "^3.29.3",
"cache-pug-templates": "^2.0.3",
"connect-redis": "^6.1.3",
@ -48,7 +49,6 @@
"saslprep": "^1.0.3",
"semver": "^7.3.7",
"socket.io": "^4.5.0",
"socket.io-redis": "^6.1.1",
"socks-proxy-agent": "^6.2.0",
"uid-safe": "^2.1.5",
"unix-crypt-td-js": "^1.1.4"

Loading…
Cancel
Save