feat(assist): decompression support

This commit is contained in:
Taha Yassine Kraiem 2023-04-06 14:27:43 +01:00
parent 2eded0c84d
commit 06b3195dab
2 changed files with 36 additions and 1 deletions

View file

@ -22,6 +22,7 @@ const {
extractPayloadFromRequest,
getCompressionConfig,
getUWSCompressionConfig,
getUWSDecompressionConfig,
getAvailableRooms
} = require('../utils/helper-ee');
const wsRouter = express.Router();
@ -49,7 +50,8 @@ const createSocketIOServer = function (server, prefix) {
},
path: (prefix ? prefix : '') + '/socket',
// perMessageDeflate: getCompressionConfig(),
compression: getUWSCompressionConfig()
compression: getUWSCompressionConfig(),
decompression: getUWSDecompressionConfig()
});
io.attachApp(server);
}

View file

@ -169,6 +169,38 @@ const getUWSCompressionConfig = function () {
}
return compression;
}
const getUWSDecompressionConfig = function () {
let compression = uWS.DISABLED;
if (process.env.UWS_DECOMPRESSION_LEVEL) {
switch (process.env.UWS_COMPRESSION_LEVEL) {
case 'SHARED_D':
compression = uWS.SHARED_DECOMPRESSOR;
break;
case 'D_D_1':
compression = uWS.DEDICATED_DECOMPRESSOR_1KB;
break;
case 'D_D_2':
compression = uWS.DEDICATED_DECOMPRESSOR_2KB;
break;
case 'D_D_4':
compression = uWS.DEDICATED_DECOMPRESSOR_4KB;
break;
case 'D_D_8':
compression = uWS.DEDICATED_DECOMPRESSOR_8KB;
break;
case 'D_D_16':
compression = uWS.DEDICATED_DECOMPRESSOR_16KB;
break;
case 'D_D_32':
compression = uWS.DEDICATED_DECOMPRESSOR_32KB;
break;
}
console.log(`WS UWS compression level: ${process.env.UWS_COMPRESSION_LEVEL} => ${compression}`);
} else {
console.log(`WS UWS compression level: disabled`);
}
return compression;
}
const getAvailableRooms = async function (io) {
if (process.env.redis === "true") {
return io.of('/').adapter.allRooms();
@ -182,5 +214,6 @@ module.exports = {
extractPayloadFromRequest,
getCompressionConfig,
getUWSCompressionConfig,
getUWSDecompressionConfig,
getAvailableRooms
};