diff --git a/ws/ws-tests.ts b/ws/ws-tests.ts index 4afa12bfe8..76ca1d1d64 100644 --- a/ws/ws-tests.ts +++ b/ws/ws-tests.ts @@ -81,3 +81,17 @@ var WebSocketServer = WebSocket.Server; console.log(ws.protocol) }) } + +{ + new WebSocket.Server({ perMessageDeflate: false }); + new WebSocket.Server({ perMessageDeflate: { } }); + new WebSocket.Server({ + perMessageDeflate: { + serverNoContextTakeover: true, + clientNoContextTakeover: true, + serverMaxWindowBits: 0, + clientMaxWindowBits: 0, + memLevel: 0 + } + }); +} diff --git a/ws/ws.d.ts b/ws/ws.d.ts index a3c34fa54b..7617e924e8 100644 --- a/ws/ws.d.ts +++ b/ws/ws.d.ts @@ -96,6 +96,14 @@ declare module "ws" { ciphers?: string; rejectUnauthorized?: boolean; } + + export interface IPerMessageDeflateOptions { + serverNoContextTakeover?: boolean; + clientNoContextTakeover?: boolean; + serverMaxWindowBits?: number; + clientMaxWindowBits?: number; + memLevel?: number; + } export interface IServerOptions { host?: string; @@ -107,6 +115,7 @@ declare module "ws" { noServer?: boolean; disableHixie?: boolean; clientTracking?: boolean; + perMessageDeflate?: boolean | IPerMessageDeflateOptions; } export class Server extends events.EventEmitter {