@@ -10,6 +10,7 @@ import {
1010 Server as HTTPServer ,
1111} from "http" ;
1212import { Server as HTTPSServer } from "https" ;
13+ import { createConnection } from "net" ;
1314import { Duplex , DuplexOptions } from "stream" ;
1415import { SecureContextOptions } from "tls" ;
1516import { URL } from "url" ;
@@ -26,6 +27,7 @@ type BufferLike =
2627 | Uint8Array
2728 | ArrayBuffer
2829 | SharedArrayBuffer
30+ | Blob
2931 | readonly any [ ]
3032 | readonly number [ ]
3133 | { valueOf ( ) : ArrayBuffer }
@@ -114,69 +116,78 @@ declare class WebSocket extends EventEmitter {
114116 // HTML5 WebSocket events
115117 addEventListener < K extends keyof WebSocket . WebSocketEventMap > (
116118 type : K ,
117- listener : ( event : WebSocket . WebSocketEventMap [ K ] ) => void ,
119+ listener :
120+ | ( ( event : WebSocket . WebSocketEventMap [ K ] ) => void )
121+ | { handleEvent ( event : WebSocket . WebSocketEventMap [ K ] ) : void } ,
118122 options ?: WebSocket . EventListenerOptions ,
119123 ) : void ;
120124 removeEventListener < K extends keyof WebSocket . WebSocketEventMap > (
121125 type : K ,
122- listener : ( event : WebSocket . WebSocketEventMap [ K ] ) => void ,
126+ listener :
127+ | ( ( event : WebSocket . WebSocketEventMap [ K ] ) => void )
128+ | { handleEvent ( event : WebSocket . WebSocketEventMap [ K ] ) : void } ,
123129 ) : void ;
124130
125131 // Events
126132 on ( event : "close" , listener : ( this : WebSocket , code : number , reason : Buffer ) => void ) : this;
127- on ( event : "error" , listener : ( this : WebSocket , err : Error ) => void ) : this;
133+ on ( event : "error" , listener : ( this : WebSocket , error : Error ) => void ) : this;
128134 on ( event : "upgrade" , listener : ( this : WebSocket , request : IncomingMessage ) => void ) : this;
129135 on ( event : "message" , listener : ( this : WebSocket , data : WebSocket . RawData , isBinary : boolean ) => void ) : this;
130136 on ( event : "open" , listener : ( this : WebSocket ) => void ) : this;
131137 on ( event : "ping" | "pong" , listener : ( this : WebSocket , data : Buffer ) => void ) : this;
138+ on ( event : "redirect" , listener : ( this : WebSocket , url : string , request : ClientRequest ) => void ) : this;
132139 on (
133140 event : "unexpected-response" ,
134141 listener : ( this : WebSocket , request : ClientRequest , response : IncomingMessage ) => void ,
135142 ) : this;
136143 on ( event : string | symbol , listener : ( this : WebSocket , ...args : any [ ] ) => void ) : this;
137144
138145 once ( event : "close" , listener : ( this : WebSocket , code : number , reason : Buffer ) => void ) : this;
139- once ( event : "error" , listener : ( this : WebSocket , err : Error ) => void ) : this;
146+ once ( event : "error" , listener : ( this : WebSocket , error : Error ) => void ) : this;
140147 once ( event : "upgrade" , listener : ( this : WebSocket , request : IncomingMessage ) => void ) : this;
141148 once ( event : "message" , listener : ( this : WebSocket , data : WebSocket . RawData , isBinary : boolean ) => void ) : this;
142149 once ( event : "open" , listener : ( this : WebSocket ) => void ) : this;
143150 once ( event : "ping" | "pong" , listener : ( this : WebSocket , data : Buffer ) => void ) : this;
151+ once ( event : "redirect" , listener : ( this : WebSocket , url : string , request : ClientRequest ) => void ) : this;
144152 once (
145153 event : "unexpected-response" ,
146154 listener : ( this : WebSocket , request : ClientRequest , response : IncomingMessage ) => void ,
147155 ) : this;
148156 once ( event : string | symbol , listener : ( this : WebSocket , ...args : any [ ] ) => void ) : this;
149157
150158 off ( event : "close" , listener : ( this : WebSocket , code : number , reason : Buffer ) => void ) : this;
151- off ( event : "error" , listener : ( this : WebSocket , err : Error ) => void ) : this;
159+ off ( event : "error" , listener : ( this : WebSocket , error : Error ) => void ) : this;
152160 off ( event : "upgrade" , listener : ( this : WebSocket , request : IncomingMessage ) => void ) : this;
153161 off ( event : "message" , listener : ( this : WebSocket , data : WebSocket . RawData , isBinary : boolean ) => void ) : this;
154162 off ( event : "open" , listener : ( this : WebSocket ) => void ) : this;
155163 off ( event : "ping" | "pong" , listener : ( this : WebSocket , data : Buffer ) => void ) : this;
164+ off ( event : "redirect" , listener : ( this : WebSocket , url : string , request : ClientRequest ) => void ) : this;
156165 off (
157166 event : "unexpected-response" ,
158167 listener : ( this : WebSocket , request : ClientRequest , response : IncomingMessage ) => void ,
159168 ) : this;
160169 off ( event : string | symbol , listener : ( this : WebSocket , ...args : any [ ] ) => void ) : this;
161170
162171 addListener ( event : "close" , listener : ( code : number , reason : Buffer ) => void ) : this;
163- addListener ( event : "error" , listener : ( err : Error ) => void ) : this;
172+ addListener ( event : "error" , listener : ( error : Error ) => void ) : this;
164173 addListener ( event : "upgrade" , listener : ( request : IncomingMessage ) => void ) : this;
165174 addListener ( event : "message" , listener : ( data : WebSocket . RawData , isBinary : boolean ) => void ) : this;
166175 addListener ( event : "open" , listener : ( ) => void ) : this;
167176 addListener ( event : "ping" | "pong" , listener : ( data : Buffer ) => void ) : this;
177+ addListener ( event : "redirect" , listener : ( url : string , request : ClientRequest ) => void ) : this;
168178 addListener (
169179 event : "unexpected-response" ,
170180 listener : ( request : ClientRequest , response : IncomingMessage ) => void ,
171181 ) : this;
172182 addListener ( event : string | symbol , listener : ( ...args : any [ ] ) => void ) : this;
173183
174184 removeListener ( event : "close" , listener : ( code : number , reason : Buffer ) => void ) : this;
175- removeListener ( event : "error" , listener : ( err : Error ) => void ) : this;
185+ removeListener ( event : "error" , listener : ( error : Error ) => void ) : this;
176186 removeListener ( event : "upgrade" , listener : ( request : IncomingMessage ) => void ) : this;
177187 removeListener ( event : "message" , listener : ( data : WebSocket . RawData , isBinary : boolean ) => void ) : this;
178188 removeListener ( event : "open" , listener : ( ) => void ) : this;
179189 removeListener ( event : "ping" | "pong" , listener : ( data : Buffer ) => void ) : this;
190+ removeListener ( event : "redirect" , listener : ( url : string , request : ClientRequest ) => void ) : this;
180191 removeListener (
181192 event : "unexpected-response" ,
182193 listener : ( request : ClientRequest , response : IncomingMessage ) => void ,
@@ -244,8 +255,11 @@ declare namespace WebSocket {
244255 family ?: number | undefined ;
245256 checkServerIdentity ?( servername : string , cert : CertMeta ) : boolean ;
246257 rejectUnauthorized ?: boolean | undefined ;
258+ allowSynchronousEvents ?: boolean | undefined ;
259+ autoPong ?: boolean | undefined ;
247260 maxPayload ?: number | undefined ;
248261 skipUTF8Validation ?: boolean | undefined ;
262+ createConnection ?: typeof createConnection | undefined ;
249263 finishRequest ?: FinishRequestCallback | undefined ;
250264 }
251265
@@ -324,6 +338,8 @@ declare namespace WebSocket {
324338 handleProtocols ?: ( protocols : Set < string > , request : InstanceType < V > ) => string | false ;
325339 path ?: string | undefined ;
326340 noServer ?: boolean | undefined ;
341+ allowSynchronousEvents ?: boolean | undefined ;
342+ autoPong ?: boolean | undefined ;
327343 clientTracking ?: boolean | undefined ;
328344 perMessageDeflate ?: boolean | PerMessageDeflateOptions | undefined ;
329345 maxPayload ?: number | undefined ;
@@ -376,34 +392,51 @@ declare class Server<
376392 shouldHandle ( request : InstanceType < U > ) : boolean | Promise < boolean > ;
377393
378394 // Events
379- on ( event : "connection" , cb : ( this : Server < T > , socket : InstanceType < T > , request : InstanceType < U > ) => void ) : this;
395+ on ( event : "connection" , cb : ( this : Server < T > , websocket : InstanceType < T > , request : InstanceType < U > ) => void ) : this;
380396 on ( event : "error" , cb : ( this : Server < T > , error : Error ) => void ) : this;
381397 on ( event : "headers" , cb : ( this : Server < T > , headers : string [ ] , request : InstanceType < U > ) => void ) : this;
382398 on ( event : "close" | "listening" , cb : ( this : Server < T > ) => void ) : this;
399+ on (
400+ event : "wsClientError" ,
401+ cb : ( this : Server < T > , error : Error , socket : Duplex , request : InstanceType < U > ) => void ,
402+ ) : this;
383403 on ( event : string | symbol , listener : ( this : Server < T > , ...args : any [ ] ) => void ) : this;
384404
385- once ( event : "connection" , cb : ( this : Server < T > , socket : InstanceType < T > , request : InstanceType < U > ) => void ) : this;
405+ once (
406+ event : "connection" ,
407+ cb : ( this : Server < T > , websocket : InstanceType < T > , request : InstanceType < U > ) => void ,
408+ ) : this;
386409 once ( event : "error" , cb : ( this : Server < T > , error : Error ) => void ) : this;
387410 once ( event : "headers" , cb : ( this : Server < T > , headers : string [ ] , request : InstanceType < U > ) => void ) : this;
388411 once ( event : "close" | "listening" , cb : ( this : Server < T > ) => void ) : this;
412+ once (
413+ event : "wsClientError" ,
414+ cb : ( this : Server < T > , error : Error , socket : Duplex , request : InstanceType < U > ) => void ,
415+ ) : this;
389416 once ( event : string | symbol , listener : ( this : Server < T > , ...args : any [ ] ) => void ) : this;
390417
391- off ( event : "connection" , cb : ( this : Server < T > , socket : InstanceType < T > , request : InstanceType < U > ) => void ) : this;
418+ off ( event : "connection" , cb : ( this : Server < T > , websocket : InstanceType < T > , request : InstanceType < U > ) => void ) : this;
392419 off ( event : "error" , cb : ( this : Server < T > , error : Error ) => void ) : this;
393420 off ( event : "headers" , cb : ( this : Server < T > , headers : string [ ] , request : InstanceType < U > ) => void ) : this;
394421 off ( event : "close" | "listening" , cb : ( this : Server < T > ) => void ) : this;
422+ off (
423+ event : "wsClientError" ,
424+ cb : ( this : Server < T > , error : Error , socket : Duplex , request : InstanceType < U > ) => void ,
425+ ) : this;
395426 off ( event : string | symbol , listener : ( this : Server < T > , ...args : any [ ] ) => void ) : this;
396427
397- addListener ( event : "connection" , cb : ( client : InstanceType < T > , request : InstanceType < U > ) => void ) : this;
398- addListener ( event : "error" , cb : ( err : Error ) => void ) : this;
428+ addListener ( event : "connection" , cb : ( websocket : InstanceType < T > , request : InstanceType < U > ) => void ) : this;
429+ addListener ( event : "error" , cb : ( error : Error ) => void ) : this;
399430 addListener ( event : "headers" , cb : ( headers : string [ ] , request : InstanceType < U > ) => void ) : this;
400431 addListener ( event : "close" | "listening" , cb : ( ) => void ) : this;
432+ addListener ( event : "wsClientError" , cb : ( error : Error , socket : Duplex , request : InstanceType < U > ) => void ) : this;
401433 addListener ( event : string | symbol , listener : ( ...args : any [ ] ) => void ) : this;
402434
403- removeListener ( event : "connection" , cb : ( client : InstanceType < T > , request : InstanceType < U > ) => void ) : this;
404- removeListener ( event : "error" , cb : ( err : Error ) => void ) : this;
435+ removeListener ( event : "connection" , cb : ( websocket : InstanceType < T > , request : InstanceType < U > ) => void ) : this;
436+ removeListener ( event : "error" , cb : ( error : Error ) => void ) : this;
405437 removeListener ( event : "headers" , cb : ( headers : string [ ] , request : InstanceType < U > ) => void ) : this;
406438 removeListener ( event : "close" | "listening" , cb : ( ) => void ) : this;
439+ removeListener ( event : "wsClientError" , cb : ( error : Error , socket : Duplex , request : InstanceType < U > ) => void ) : this;
407440 removeListener ( event : string | symbol , listener : ( ...args : any [ ] ) => void ) : this;
408441}
409442export { type Server } ;
0 commit comments