deno.com
interface WebSocket
extends EventTarget
allow-net

Provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection.

If you are looking to create a WebSocket server, please take a look at Deno.upgradeWebSocket().

Properties #

Returns a string that indicates how binary data from the WebSocket object is exposed to scripts:

Can be set, to change how binary data is returned. The default is "blob".

const ws = new WebSocket("ws://localhost:8080");
ws.binaryType = "arraybuffer";
readonly
#bufferedAmount: number

Returns the number of bytes of application data (UTF-8 text and binary data) that have been queued using send() but not yet been transmitted to the network.

If the WebSocket connection is closed, this attribute's value will only increase with each call to the send() method. (The number does not reset to zero once the connection closes.)

const ws = new WebSocket("ws://localhost:8080");
ws.send("Hello, world!");
console.log(ws.bufferedAmount); // 13
readonly
#extensions: string

Returns the extensions selected by the server, if any.

WebSocket extensions add optional features negotiated during the handshake via the Sec-WebSocket-Extensions header.

At the time of writing, there are two registered extensions:

See the full list at IANA WebSocket Extensions.

Example:

const ws = new WebSocket("ws://localhost:8080");
console.log(ws.extensions); // e.g., "permessage-deflate"
#onclose: (() => any) | null
#onerror: (() => any) | null
#onmessage: (() => any) | null
#onopen: ((
this: WebSocket,
ev: Event,
) => any) | null
readonly
#protocol: string

Returns the subprotocol selected by the server, if any. It can be used in conjunction with the array form of the constructor's second argument to perform subprotocol negotiation.

readonly
#readyState: number

Returns the state of the WebSocket object's connection. It can have the values described below.

readonly
#url: string

Returns the URL that was used to establish the WebSocket connection.

readonly
#CLOSED: number
readonly
#CLOSING: number
readonly
#CONNECTING: number
readonly
#OPEN: number

Methods #

#close(
code?: number,
reason?: string,
): void

Closes the WebSocket connection, optionally using code as the WebSocket connection close code and reason as the WebSocket connection close reason.

#send(data:
string
| ArrayBufferLike
| Blob
| ArrayBufferView
): void

Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView.

#addEventListener<K extends keyof WebSocketEventMap>(
type: K,
listener: () => any,
options?: boolean | AddEventListenerOptions,
): void
#addEventListener(
type: string,
options?: boolean | AddEventListenerOptions,
): void
#removeEventListener<K extends keyof WebSocketEventMap>(
type: K,
listener: () => any,
options?: boolean | EventListenerOptions,
): void
#removeEventListener(
type: string,
options?: boolean | EventListenerOptions,
): void

See #