182 lines
5.0 KiB
Markdown
182 lines
5.0 KiB
Markdown
|
# ws
|
||
|
|
||
|
## Class: ws.Server
|
||
|
|
||
|
This class is a WebSocket server. It is an `EventEmitter`.
|
||
|
|
||
|
### new ws.Server([options], [callback])
|
||
|
|
||
|
* `options` Object
|
||
|
* `host` String
|
||
|
* `port` Number
|
||
|
* `server` http.Server
|
||
|
* `verifyClient` Function
|
||
|
* `path` String
|
||
|
* `noServer` Boolean
|
||
|
* `disableHixie` Boolean
|
||
|
* `clientTracking` Boolean
|
||
|
* `callback` Function
|
||
|
|
||
|
Construct a new server object.
|
||
|
|
||
|
Either `port` or `server` must be provided, otherwise you might enable
|
||
|
`noServer` if you want to pass the requests directly. Please note that the
|
||
|
`callback` is only used when you supply the a `port` number in the options.
|
||
|
|
||
|
### server.close([code], [data])
|
||
|
|
||
|
Close the server and terminate all clients
|
||
|
|
||
|
### server.handleUpgrade(request, socket, upgradeHead, callback)
|
||
|
|
||
|
Handles a HTTP Upgrade request. `request` is an instance of `http.ServerRequest`, `socket` is an instance of `net.Socket`.
|
||
|
|
||
|
When the Upgrade was successfully, the `callback` will be called with a `ws.WebSocket` object as parameter.
|
||
|
|
||
|
### Event: 'error'
|
||
|
|
||
|
`function (error) { }`
|
||
|
|
||
|
If the underlying server emits an error, it will be forwarded here.
|
||
|
|
||
|
### Event: 'headers'
|
||
|
|
||
|
`function (headers) { }`
|
||
|
|
||
|
Emitted with the object of HTTP headers that are going to be written to the `Stream` as part of the handshake.
|
||
|
|
||
|
### Event: 'connection'
|
||
|
|
||
|
`function (socket) { }`
|
||
|
|
||
|
When a new WebSocket connection is established. `socket` is an object of type `ws.WebSocket`.
|
||
|
|
||
|
|
||
|
## Class: ws.WebSocket
|
||
|
|
||
|
This class represents a WebSocket connection. It is an `EventEmitter`.
|
||
|
|
||
|
### new ws.WebSocket(address, [options])
|
||
|
|
||
|
* `address` String|Array
|
||
|
* `options` Object
|
||
|
* `protocol` String
|
||
|
* `agent` Agent
|
||
|
* `headers` Object
|
||
|
* `protocolVersion` Number|String
|
||
|
-- the following only apply if `address` is a String
|
||
|
* `host` String
|
||
|
* `origin` String
|
||
|
* `pfx` String|Buffer
|
||
|
* `key` String|Buffer
|
||
|
* `passphrase` String
|
||
|
* `cert` String|Buffer
|
||
|
* `ca` Array
|
||
|
* `ciphers` String
|
||
|
* `rejectUnauthorized` Boolean
|
||
|
|
||
|
Instantiating with an `address` creates a new WebSocket client object. If `address` is an Array (request, socket, rest), it is instantiated as a Server client (e.g. called from the `ws.Server`).
|
||
|
|
||
|
### websocket.bytesReceived
|
||
|
|
||
|
Received bytes count.
|
||
|
|
||
|
### websocket.readyState
|
||
|
|
||
|
Possible states are `WebSocket.CONNECTING`, `WebSocket.OPEN`, `WebSocket.CLOSING`, `WebSocket.CLOSED`.
|
||
|
|
||
|
### websocket.protocolVersion
|
||
|
|
||
|
The WebSocket protocol version used for this connection, `8`, `13` or `hixie-76` (the latter only for server clients).
|
||
|
|
||
|
### websocket.url
|
||
|
|
||
|
The URL of the WebSocket server (only for clients)
|
||
|
|
||
|
### websocket.supports
|
||
|
|
||
|
Describes the feature of the used protocol version. E.g. `supports.binary` is a boolean that describes if the connection supports binary messages.
|
||
|
|
||
|
### websocket.close([code], [data])
|
||
|
|
||
|
Gracefully closes the connection, after sending a description message
|
||
|
|
||
|
### websocket.pause()
|
||
|
|
||
|
Pause the client stream
|
||
|
|
||
|
### websocket.ping([data], [options], [dontFailWhenClosed])
|
||
|
|
||
|
Sends a ping. `data` is sent, `options` is an object with members `mask` and `binary`. `dontFailWhenClosed` indicates whether or not to throw if the connection isnt open.
|
||
|
|
||
|
### websocket.pong([data], [options], [dontFailWhenClosed])
|
||
|
|
||
|
Sends a pong. `data` is sent, `options` is an object with members `mask` and `binary`. `dontFailWhenClosed` indicates whether or not to throw if the connection isnt open.
|
||
|
|
||
|
|
||
|
### websocket.resume()
|
||
|
|
||
|
Resume the client stream
|
||
|
|
||
|
### websocket.send(data, [options], [callback])
|
||
|
|
||
|
Sends `data` through the connection. `options` can be an object with members `mask` and `binary`. The optional `callback` is executed after the send completes.
|
||
|
|
||
|
### websocket.stream([options], callback)
|
||
|
|
||
|
Streams data through calls to a user supplied function. `options` can be an object with members `mask` and `binary`. `callback` is executed on successive ticks of which send is `function (data, final)`.
|
||
|
|
||
|
### websocket.terminate()
|
||
|
|
||
|
Immediately shuts down the connection
|
||
|
|
||
|
### websocket.onopen
|
||
|
### websocket.onerror
|
||
|
### websocket.onclose
|
||
|
### websocket.onmessage
|
||
|
|
||
|
Emulates the W3C Browser based WebSocket interface using function members.
|
||
|
|
||
|
### websocket.addEventListener(method, listener)
|
||
|
|
||
|
Emulates the W3C Browser based WebSocket interface using addEventListener.
|
||
|
|
||
|
### Event: 'error'
|
||
|
|
||
|
`function (error) { }`
|
||
|
|
||
|
If the client emits an error, this event is emitted (errors from the underlying `net.Socket` are forwarded here).
|
||
|
|
||
|
### Event: 'close'
|
||
|
|
||
|
`function (code, message) { }`
|
||
|
|
||
|
Is emitted when the connection is closed. `code` is defined in the WebSocket specification.
|
||
|
|
||
|
The `close` event is also emitted when then underlying `net.Socket` closes the connection (`end` or `close`).
|
||
|
|
||
|
### Event: 'message'
|
||
|
|
||
|
`function (data, flags) { }`
|
||
|
|
||
|
Is emitted when data is received. `flags` is an object with member `binary`.
|
||
|
|
||
|
### Event: 'ping'
|
||
|
|
||
|
`function (data, flags) { }`
|
||
|
|
||
|
Is emitted when a ping is received. `flags` is an object with member `binary`.
|
||
|
|
||
|
### Event: 'pong'
|
||
|
|
||
|
`function (data, flags) { }`
|
||
|
|
||
|
Is emitted when a pong is received. `flags` is an object with member `binary`.
|
||
|
|
||
|
### Event: 'open'
|
||
|
|
||
|
`function () { }`
|
||
|
|
||
|
Emitted when the connection is established.
|
||
|
|