# Class: WebSocketBase

## vertx-js/web_socket_base~ WebSocketBase

#### new WebSocketBase()

Base WebSocket implementation.

Source:
  - vertx-js/web_socket_base.js, line 34

### Methods

#### binaryHandlerID() → {string}

When a `Websocket` is created it automatically registers an event handler with the event bus - the ID of that handler is given by this method.

Given this ID, a different event loop can send a binary frame to that event handler using the event bus and that buffer will be received by this instance in its own event loop and written to the underlying connection. This allows you to write data to other WebSockets which are owned by different event loops.

Source:
  - vertx-js/web_socket_base.js, line 198

##### Returns:

the binary handler id

Type
  string

#### binaryMessageHandler(handler) → {WebSocketBase}

Set a binary message handler on the connection. This handler serves a similar purpose to WebSocketBase#handler except that if a message comes into the socket in multiple frames, the data from the frames will be aggregated into a single buffer before calling the handler (using WebSocketFrame#isFinal to find the boundaries).

##### Parameters:

Name | Type | Description
--- | --- | ---
`handler` | function | the handler

Source:
  - vertx-js/web_socket_base.js, line 420

##### Returns:

a reference to this, so the API can be used fluently

Type
  WebSocketBase

#### close(statusCode, reason)

##### Parameters:

Name | Type | Description
--- | --- | ---
`statusCode` | number |
`reason` | string |

Source:
  - vertx-js/web_socket_base.js, line 461

#### closeHandler(handler) → {WebSocketBase}

Set a close handler. This will be called when the WebSocket is closed.

##### Parameters:

Name | Type | Description
--- | --- | ---
`handler` | function | the handler

Source:
  - vertx-js/web_socket_base.js, line 368

##### Returns:

a reference to this, so the API can be used fluently

Type
  WebSocketBase

#### drainHandler(handler) → {WebSocketBase}

##### Parameters:

Name | Type | Description
--- | --- | ---
`handler` | function |

Source:
  - vertx-js/web_socket_base.js, line 178

##### Returns:

Type
  WebSocketBase

#### end(t)

Same as WebSocketBase#end but writes some data to the stream before ending.

##### Parameters:

Name | Type | Description
--- | --- | ---
`t` | Buffer |

Source:
  - vertx-js/web_socket_base.js, line 47

#### endHandler(endHandler) → {WebSocketBase}

##### Parameters:

Name | Type | Description
--- | --- | ---
`endHandler` | function |

Source:
  - vertx-js/web_socket_base.js, line 136

##### Returns:

Type
  WebSocketBase

#### exceptionHandler(handler) → {WebSocketBase}

##### Parameters:

Name | Type | Description
--- | --- | ---
`handler` | function |

Source:
  - vertx-js/web_socket_base.js, line 76

##### Returns:

Type
  WebSocketBase

#### frameHandler(handler) → {WebSocketBase}

Set a frame handler on the connection. This handler will be called when frames are read on the connection.

##### Parameters:

Name | Type | Description
--- | --- | ---
`handler` | function | the handler

Source:
  - vertx-js/web_socket_base.js, line 383

##### Returns:

a reference to this, so the API can be used fluently

Type
  WebSocketBase

#### handler(handler) → {WebSocketBase}

##### Parameters:

Name | Type | Description
--- | --- | ---
`handler` | function |

Source:
  - vertx-js/web_socket_base.js, line 92

##### Returns:

Type
  WebSocketBase

#### isSsl() → {boolean}

Source:
  - vertx-js/web_socket_base.js, line 510

##### Returns:

true if this HttpConnection is encrypted via SSL/TLS.

Type
  boolean

#### localAddress() → {SocketAddress}

Source:
  - vertx-js/web_socket_base.js, line 494

##### Returns:

the local address for this socket

Type
  SocketAddress

#### pause() → {WebSocketBase}

Source:
  - vertx-js/web_socket_base.js, line 108

##### Returns:

Type
  WebSocketBase

#### pongHandler(handler) → {WebSocketBase}

Set a pong message handler on the connection. This handler will be invoked every time a pong message is received on the server, and can be used by both clients and servers since the RFC 6455 Sections 5.5.2 and 5.5.3 do not specify whether the client or server sends a ping.

Pong frames may be at most 125 bytes (octets).

There is no ping handler since pings should immediately be responded to with a pong with identical content

Pong frames may be received unsolicited.

##### Parameters:

Name | Type | Description
--- | --- | ---
`handler` | function | the handler

Source:
  - vertx-js/web_socket_base.js, line 445

##### Returns:

a reference to this, so the API can be used fluently

Type
  WebSocketBase

#### remoteAddress() → {SocketAddress}

Source:
  - vertx-js/web_socket_base.js, line 478

##### Returns:

the remote address for this socket

Type
  SocketAddress

#### resume() → {WebSocketBase}

Source:
  - vertx-js/web_socket_base.js, line 122

##### Returns:

Type
  WebSocketBase

#### setWriteQueueMaxSize(maxSize) → {WebSocketBase}

##### Parameters:

Name | Type | Description
--- | --- | ---
`maxSize` | number |

Source:
  - vertx-js/web_socket_base.js, line 164

##### Returns:

Type
  WebSocketBase

#### subProtocol() → {string}

Returns the websocket sub protocol selected by the websocket handshake.

On the server, the value will be `null` when the handler receives the websocket callback as the handshake will not be completed yet.

Source:
  - vertx-js/web_socket_base.js, line 234

##### Returns:

Type
  string

#### textHandlerID() → {string}

When a `Websocket` is created it automatically registers an event handler with the eventbus, the ID of that handler is given by `textHandlerID`.

Given this ID, a different event loop can send a text frame to that event handler using the event bus and that buffer will be received by this instance in its own event loop and written to the underlying connection. This allows you to write data to other WebSockets which are owned by different event loops.

Source:
  - vertx-js/web_socket_base.js, line 217

##### Returns:

Type
  string

#### textMessageHandler(handler) → {WebSocketBase}

Set a text message handler on the connection. This handler will be called similar to the , but the buffer will be converted to a String first

##### Parameters:

Name | Type | Description
--- | --- | ---
`handler` | function | the handler

Source:
  - vertx-js/web_socket_base.js, line 401

##### Returns:

a reference to this, so the API can be used fluently

Type
  WebSocketBase

#### write(data) → {WebSocketBase}

##### Parameters:

Name | Type | Description
--- | --- | ---
`data` | Buffer |

Source:
  - vertx-js/web_socket_base.js, line 150

##### Returns:

Type
  WebSocketBase

#### writeBinaryMessage(data) → {WebSocketBase}

Writes a (potentially large) piece of binary data to the connection. This data might be written as multiple frames if it exceeds the maximum WebSocket frame size.

##### Parameters:

Name | Type | Description
--- | --- | ---
`data` | Buffer | the data to write

Source:
  - vertx-js/web_socket_base.js, line 294

##### Returns:

a reference to this, so the API can be used fluently

Type
  WebSocketBase

#### writeFinalBinaryFrame(data) → {WebSocketBase}

Write a final WebSocket binary frame to the connection

##### Parameters:

Name | Type | Description
--- | --- | ---
`data` | Buffer | The data to write

Source:
  - vertx-js/web_socket_base.js, line 278

##### Returns:

a reference to this, so the API can be used fluently

Type
  WebSocketBase

#### writeFinalTextFrame(text) → {WebSocketBase}

Write a final WebSocket text frame to the connection

##### Parameters:

Name | Type | Description
--- | --- | ---
`text` | string | The text to write

Source:
  - vertx-js/web_socket_base.js, line 263

##### Returns:

a reference to this, so the API can be used fluently

Type
  WebSocketBase

#### writeFrame(frame) → {WebSocketBase}

Write a WebSocket frame to the connection

##### Parameters:

Name | Type | Description
--- | --- | ---
`frame` | WebSocketFrame | the frame to write

Source:
  - vertx-js/web_socket_base.js, line 248

##### Returns:

a reference to this, so the API can be used fluently

Type
  WebSocketBase

#### writePing(data) → {WebSocketBase}

Writes a ping to the connection. This will be written in a single frame. Ping frames may be at most 125 bytes (octets).

This method should not be used to write application data and should only be used for implementing a keep alive or to ensure the client is still responsive, see RFC 6455 Section 5.5.2.

There is no pingHandler because RFC 6455 section 5.5.2 clearly states that the only response to a ping is a pong with identical contents.

##### Parameters:

Name | Type | Description
--- | --- | ---
`data` | Buffer | the data to write, may be at most 125 bytes

Source:
  - vertx-js/web_socket_base.js, line 331

##### Returns:

a reference to this, so the API can be used fluently

Type
  WebSocketBase

#### writePong(data) → {WebSocketBase}

Writes a pong to the connection. This will be written in a single frame. Pong frames may be at most 125 bytes (octets).

This method should not be used to write application data and should only be used for implementing a keep alive or to ensure the client is still responsive, see RFC 6455 Section 5.5.2.

There is no need to manually write a Pong, as the server and client both handle responding to a ping with a pong automatically and this is exposed to users.RFC 6455 Section 5.5.3 states that pongs may be sent unsolicited in order to implement a one way heartbeat.

##### Parameters:

Name | Type | Description
--- | --- | ---
`data` | Buffer | the data to write, may be at most 125 bytes

Source:
  - vertx-js/web_socket_base.js, line 353

##### Returns:

a reference to this, so the API can be used fluently

Type
  WebSocketBase

#### writeQueueFull() → {boolean}

This will return `true` if there are more bytes in the write queue than the value set using WebSocketBase#setWriteQueueMaxSize

Source:
  - vertx-js/web_socket_base.js, line 63

##### Returns:

true if write queue is full

Type
  boolean

#### writeTextMessage(text) → {WebSocketBase}

Writes a (potentially large) piece of text data to the connection. This data might be written as multiple frames if it exceeds the maximum WebSocket frame size.

##### Parameters:

Name | Type | Description
--- | --- | ---
`text` | string | the data to write

Source:
  - vertx-js/web_socket_base.js, line 310

##### Returns:

a reference to this, so the API can be used fluently

Type
  WebSocketBase