mirror of
https://github.com/meteor/meteor.git
synced 2026-01-10 08:08:24 -05:00
adjust compression parameters and use permessage-deflate2 with threshold (only messages larger than 1kb (512 chars) are compressed by default)
This commit is contained in:
17
package-lock.json
generated
17
package-lock.json
generated
@@ -15,6 +15,8 @@
|
||||
"@babel/preset-react": "^7.18.6",
|
||||
"@types/lodash.isempty": "^4.4.9",
|
||||
"@types/node": "^18.16.18",
|
||||
"@types/sockjs": "^0.3.36",
|
||||
"@types/sockjs-client": "^1.5.4",
|
||||
"@typescript-eslint/eslint-plugin": "^5.56.0",
|
||||
"@typescript-eslint/parser": "^5.56.0",
|
||||
"eslint": "^8.36.0",
|
||||
@@ -1127,6 +1129,21 @@
|
||||
"integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/sockjs": {
|
||||
"version": "0.3.36",
|
||||
"resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
|
||||
"integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/sockjs-client": {
|
||||
"version": "1.5.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/sockjs-client/-/sockjs-client-1.5.4.tgz",
|
||||
"integrity": "sha512-zk+uFZeWyvJ5ZFkLIwoGA/DfJ+pYzcZ8eH4H/EILCm2OBZyHH6Hkdna1/UWL/CFruh5wj6ES7g75SvUB0VsH5w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||
"version": "5.62.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
"@babel/preset-react": "^7.18.6",
|
||||
"@types/lodash.isempty": "^4.4.9",
|
||||
"@types/node": "^18.16.18",
|
||||
"@types/sockjs": "^0.3.36",
|
||||
"@types/sockjs-client": "^1.5.4",
|
||||
"@typescript-eslint/eslint-plugin": "^5.56.0",
|
||||
"@typescript-eslint/parser": "^5.56.0",
|
||||
"eslint": "^8.36.0",
|
||||
|
||||
@@ -5,7 +5,7 @@ Package.describe({
|
||||
});
|
||||
|
||||
Npm.depends({
|
||||
"permessage-deflate": "0.1.7",
|
||||
"permessage-deflate2": "0.1.8-alpha.1",
|
||||
sockjs: "0.3.24",
|
||||
"lodash.once": "4.1.1",
|
||||
"lodash.isempty": "4.4.0",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import once from 'lodash.once';
|
||||
import zlib from 'node:zlib';
|
||||
|
||||
// By default, we use the permessage-deflate extension with default
|
||||
// configuration. If $SERVER_WEBSOCKET_COMPRESSION is set, then it must be valid
|
||||
@@ -14,12 +15,18 @@ import once from 'lodash.once';
|
||||
var websocketExtensions = once(function () {
|
||||
var extensions = [];
|
||||
|
||||
var websocketCompressionConfig = process.env.SERVER_WEBSOCKET_COMPRESSION
|
||||
? JSON.parse(process.env.SERVER_WEBSOCKET_COMPRESSION) : {};
|
||||
var websocketCompressionConfig = process.env.SERVER_WEBSOCKET_COMPRESSION ?
|
||||
JSON.parse(process.env.SERVER_WEBSOCKET_COMPRESSION) : {};
|
||||
|
||||
if (websocketCompressionConfig) {
|
||||
extensions.push(Npm.require('permessage-deflate').configure(
|
||||
websocketCompressionConfig
|
||||
));
|
||||
extensions.push(Npm.require('permessage-deflate2').configure({
|
||||
threshold: 512,
|
||||
level: zlib.constants.Z_BEST_SPEED,
|
||||
memLevel: zlib.constants.Z_MIN_MEMLEVEL,
|
||||
noContextTakeover: true,
|
||||
maxWindowBits: zlib.constants.Z_MIN_WINDOWBITS,
|
||||
...(websocketCompressionConfig || {})
|
||||
}));
|
||||
}
|
||||
|
||||
return extensions;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Meteor } from "meteor/meteor";
|
||||
import { toWebsocketUrl } from "./urls.js";
|
||||
import { StreamClientCommon } from "./common.js";
|
||||
import { toWebsocketUrl } from "./urls.js";
|
||||
|
||||
// @param endpoint {String} URL to Meteor app
|
||||
// "http://subdomain.meteor.com/" or "/" or
|
||||
@@ -132,7 +132,7 @@ export class ClientStream extends StreamClientCommon {
|
||||
// require the module if we actually create a server-to-server
|
||||
// connection.
|
||||
var FayeWebSocket = Npm.require('faye-websocket');
|
||||
var deflate = Npm.require('permessage-deflate');
|
||||
var deflate = Npm.require('permessage-deflate2');
|
||||
|
||||
var targetUrl = toWebsocketUrl(this.endpoint);
|
||||
var fayeOptions = {
|
||||
|
||||
@@ -7,7 +7,7 @@ Package.describe({
|
||||
|
||||
Npm.depends({
|
||||
"faye-websocket": "0.11.4",
|
||||
"permessage-deflate": "0.1.7",
|
||||
"permessage-deflate2": "0.1.8-alpha.1",
|
||||
"lodash.isequal": "4.5.0",
|
||||
"lodash.once": "4.1.1"
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user