1 // flow-typed signature: cf710812f8fe053ca189786d3fa45067
2 // flow-typed version: be32675b14/ws_v7.x.x/flow_>=v0.104.x
4 declare type ws
$PerMessageDeflateOptions
= {|
5 serverNoContextTakeover
?: boolean,
6 clientNoContextTakeover
?: boolean,
7 serverMaxWindowBits
?: boolean | number
,
8 clientMaxWindowBits
?: boolean | number
,
9 zlibDeflateOptions
?: zlib
$options
,
10 zlibInflateOptions
?: zlib
$options
,
12 concurrencyLimit
?: number
,
17 declare
class ws
$WebSocketServer
extends events
$EventEmitter
{
19 * Create a `WebSocketServer` instance.
24 clientTracking
?: boolean,
25 handleProtocols
?: () => mixed
,
30 perMessageDeflate
?: boolean | ws
$PerMessageDeflateOptions
,
32 server
?: http
$Server
| https
$Server
,
33 verifyClient
?: () => mixed
,
35 callback
?: () => mixed
40 clientTracking
?: boolean,
41 handleProtocols
?: () => mixed
,
46 perMessageDeflate
?: boolean | ws
$PerMessageDeflateOptions
,
48 server
: http
$Server
| https
$Server
,
49 verifyClient
?: () => mixed
,
51 callback
?: () => mixed
56 clientTracking
?: boolean,
57 handleProtocols
?: () => mixed
,
62 perMessageDeflate
?: boolean | ws
$PerMessageDeflateOptions
,
64 server
?: http
$Server
| https
$Server
,
65 verifyClient
?: () => mixed
,
67 callback
?: () => mixed
71 * Emitted when the server closes.
73 on(event
: 'close', () => mixed
): this;
76 * Emitted when the handshake is complete.
80 (socket
: ws
$WebSocket
, request
: http
$IncomingMessage
<>) => mixed
84 * Emitted when an error occurs on the underlying server.
86 on(event
: 'error', (error
: Error
) => mixed
): this;
89 * Emitted before the response headers are written to the socket as part of
94 (headers
: Array
<string
>, request
: http
$IncomingMessage
<>) => mixed
98 * Emitted when the underlying server has been bound.
100 on(event
: 'listening', () => mixed
): this;
103 * Returns the bound address, the address family name, and port of the server
104 * as reported by the operating system if listening on an IP socket.
105 * If the server is listening on a pipe or UNIX domain socket, the name is
106 * returned as a string.
111 | {| port
?: number
, family
?: string
, address
?: string
|};
114 * A set that stores all connected clients. Please note that this property is
115 * only added when the `clientTracking` is truthy.
117 clients
: Set
<ws
$WebSocket
>;
122 close(callback
?: () => mixed
): void;
125 * Handle a HTTP Upgrade request.
128 request
: http
$IncomingMessage
<>,
131 callback
: (?ws
$WebSocket
) => mixed
135 * See if a given request should be handled by this server instance.
137 shouldHandle(request
: http
$IncomingMessage
<>): boolean;
140 declare type ws
$WebSocketOptions
= {
141 followRedirects
?: boolean,
142 handshakeTimeout
?: number
,
143 maxRedirects
?: number
,
144 perMessageDeflate
?: boolean | ws
$PerMessageDeflateOptions
,
145 protocolVersion
?: number
,
149 agent
?: boolean | http
$Agent
<> | http
$Agent
<tls
$TLSSocket
>,
151 | ((options
: net
$connectOptions
, callback
?: () => mixed
) => net
$Socket
)
152 | ((options
: tls
$connectOptions
, callback
?: () => mixed
) => tls
$TLSSocket
),
156 declare type ws
$CloseListener
= (code
: number
, reason
: string
) => mixed
;
157 declare type ws
$ErrorListener
= (error
: Error
) => mixed
;
158 declare type ws
$MessageListener
= (
159 data
: string
| Buffer
| ArrayBuffer
| Array
<Buffer
>
161 declare type ws
$OpenListener
= () => mixed
;
162 declare type ws
$PingListener
= (Buffer
) => mixed
;
163 declare type ws
$PongListener
= (Buffer
) => mixed
;
164 declare type ws
$UnexpectedResponseListener
= (
165 request
: http
$ClientRequest
<>,
166 response
: http
$IncomingMessage
<>
168 declare type ws
$UpgradeListener
= (response
: http
$IncomingMessage
<>) => mixed
;
170 declare
class ws
$WebSocket
extends events
$EventEmitter
{
171 static Server
: typeof ws
$WebSocketServer
;
173 static createWebSocketStream
: (
174 WebSocket
: ws
$WebSocket
,
175 options
?: duplexStreamOptions
178 static CONNECTING
: number
;
180 static CLOSING
: number
;
181 static CLOSED
: number
;
184 * Create a `WebSocket` instance.
187 address
: string
| URL
,
188 protocols
?: string
| Array
<string
>,
189 options
?: ws
$WebSocketOptions
191 constructor(address
: string
| URL
, options
: ws
$WebSocketOptions
): this;
194 * Emitted when the connection is closed.
196 on('close', ws
$CloseListener
): this;
199 * Emitted when an error occurs.
201 on('error', ws
$ErrorListener
): this;
204 * Emitted when a message is received from the server.
206 on('message', ws
$MessageListener
): this;
209 * Emitted when the connection is established.
211 on('open', ws
$OpenListener
): this;
214 * Emitted when a ping is received from the server.
216 on('ping', ws
$PingListener
): this;
219 * Emitted when a pong is received from the server.
221 on('pong', ws
$PongListener
): this;
224 * Emitted when the server response is not the expected one,
225 * for example a 401 response.
227 on('unexpected-response', ws
$UnexpectedResponseListener
): this;
230 * Emitted when response headers are received from the server as part of the
233 on('upgrade', ws
$UpgradeListener
): this;
236 * Register an event listener emulating the `EventTarget` interface.
240 listener
: ws
$CloseListener
,
241 options
?: {| once
?: boolean |}
245 listener
: ws
$ErrorListener
,
246 options
?: {| once
?: boolean |}
250 listener
: ws
$MessageListener
,
251 options
?: {| once
?: boolean |}
255 listener
: ws
$OpenListener
,
256 options
?: {| once
?: boolean |}
260 listener
: ws
$PingListener
,
261 options
?: {| once
?: boolean |}
265 listener
: ws
$PongListener
,
266 options
?: {| once
?: boolean |}
269 type
: 'unexpected-response',
270 ws
$UnexpectedResponseListener
,
271 options
?: {| once
?: boolean |}
275 listener
: ws
$UpgradeListener
,
276 options
?: {| once
?: boolean |}
280 * A string indicating the type of binary data being transmitted by the
286 * The number of bytes of data that have been queued using calls to send()
287 * but not yet transmitted to the network.
289 bufferedAmount
: number
;
292 * Initiate a closing handshake.
294 close(code
?: number
, reason
?: string
): void;
297 * The negotiated extensions.
304 ping(data
?: any
, mask
?: boolean, callback
?: () => mixed
): void;
305 ping(data
: any
, callback
: () => mixed
): void;
306 ping(callback
: () => mixed
): void;
311 pong(data
?: any
, mask
?: boolean, callback
?: () => mixed
): void;
312 pong(data
: any
, callback
: () => mixed
): void;
313 pong(callback
: () => mixed
): void;
316 * The subprotocol selected by the server.
321 * The current state of the connection.
326 * Removes an event listener emulating the `EventTarget` interface.
328 removeEventListener(type
: 'close', listener
: ws
$CloseListener
): this;
329 removeEventListener(type
: 'error', listener
: ws
$ErrorListener
): this;
330 removeEventListener(type
: 'message', listener
: ws
$MessageListener
): this;
331 removeEventListener(type
: 'open', listener
: ws
$OpenListener
): this;
332 removeEventListener(type
: 'ping', listener
: ws
$PingListener
): this;
333 removeEventListener(type
: 'pong', listener
: ws
$PongListener
): this;
335 type
: 'unexpected-response',
336 ws
$UnexpectedResponseListener
338 removeEventListener(type
: 'upgrade', listener
: ws
$UpgradeListener
): this;
341 * Send a data message.
351 callback
?: () => mixed
353 send(data
: any
, callback
: () => mixed
): void;
356 * Forcibly close the connection.
361 declare module
'ws' {
362 declare module
.exports
: typeof ws
$WebSocket
;