- Notifications
You must be signed in to change notification settings - Fork0
Per-message DEFLATE compression extension for WebSocket connections
License
leonardoventurini/permessage-deflate2
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Implements thepermessage-deflateWebSocket protocol extension as a plugin forwebsocket-extensions.
$ npm install permessage-deflate2
Add the plugin to your extensions:
varExtensions=require('websocket-extensions'),deflate=require('permessage-deflate');varexts=newExtensions();exts.add(deflate);
The extension can be configured, for example:
varExtensions=require('websocket-extensions'),deflate=require('permessage-deflate'),zlib=require('zlib');deflate=deflate.configure({level:zlib.Z_BEST_COMPRESSION,maxWindowBits:13,threshold:100// optional, defaults to 0 (always compress)});varexts=newExtensions();exts.add(deflate);
The set of available options can be split into two sets: those that control thesession's compressor for outgoing messages and do not need to be communicated tothe peer, and those that are negotiated as part of the protocol. The settingsonly affecting the compressor are described fully in thezlibdocumentation:
threshold
: sets the minimum size of messages to be compressed, defaults to 0level
: sets the compression level, can be an integer from0
to9
, or oneof the constantszlib.Z_NO_COMPRESSION
,zlib.Z_BEST_SPEED
,zlib.Z_BEST_COMPRESSION
, orzlib.Z_DEFAULT_COMPRESSION
memLevel
: sets how much memory the compressor allocates, can be an integerfrom1
to9
, or one of the constantszlib.Z_MIN_MEMLEVEL
,zlib.Z_MAX_MEMLEVEL
, orzlib.Z_DEFAULT_MEMLEVEL
strategy
: can be one of the constantszlib.Z_FILTERED
,zlib.Z_HUFFMAN_ONLY
,zlib.Z_RLE
,zlib.Z_FIXED
, orzlib.Z_DEFAULT_STRATEGY
The other options relate to settings that are negotiated via the protocol andcan be used to set the local session's behaviour and control that of the peer:
noContextTakeover
: iftrue
, stops the session reusing a deflate contextbetween messagesrequestNoContextTakeover
: iftrue
, makes the session tell the other peernot to reuse a deflate context between messagesmaxWindowBits
: an integer from8
to15
inclusive that sets the maximumsize of the session's sliding window; a lower window size will be used ifrequested by the peerrequestMaxWindowBits
: an integer from8
to15
inclusive to ask the otherpeer to use to set its maximum sliding window size, if supported
About
Per-message DEFLATE compression extension for WebSocket connections
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Languages
- JavaScript100.0%