Usage

Keep a connection open

tsx
const socket = new WebSocket('wss://chat.example.com', ['v2']);

socket.onopen = () => socket.send(JSON.stringify({ hello: true }));
socket.onmessage = ({ data }) => console.log(data); // a string, or an ArrayBuffer
socket.onclose = ({ code, reason, wasClean }) => {};

Constructors

ts
(url: string | URL, protocols?: string | string[]): WebSocket

Parameters

NameTypeRequiredDescription
urlstring | URLYes—
protocolsstring | string[]No—

Returns

WebSocket

Properties and methods 19

NameTypeRequiredDescription
prototypereadonlyWebSocketYes—
CONNECTINGreadonly0Yes—
OPENreadonly1Yes—
CLOSINGreadonly2Yes—
CLOSEDreadonly3Yes—
urlreadonlystringYes—
readyStatereadonly0 | 2 | 1 | 3Yes—
protocolreadonlystringYesThe subprotocol the server chose, once open.
bufferedAmountreadonlynumberYesAlways 0: bytes are not counted on their way out.
extensionsreadonlystringYes—
binaryType"arraybuffer"YesOnly 'arraybuffer': there is no Blob.
onopen(event: WebSocketEvent) => voidYes—
onmessage(event: WebSocketEvent) => voidYes—
onerror(event: WebSocketEvent) => voidYes—
onclose(event: WebSocketEvent) => voidYes—
addEventListener(type: WebSocketEvent["type"], listener: (event: WebSocketEvent) => void) => voidYes—
removeEventListener(type: WebSocketEvent["type"], listener: (event: WebSocketEvent) => void) => voidYes—
send(data: string | ArrayBuffer | ArrayBufferView) => voidYes—
close(code?: number, reason?: string) => voidYes—
onopen — method signatures

Signatures

ts
(event: WebSocketEvent): void

Parameters

NameTypeRequiredDescription
eventWebSocketEventYes—

Returns

void

onmessage — method signatures

Signatures

ts
(event: WebSocketEvent): void

Parameters

NameTypeRequiredDescription
eventWebSocketEventYes—

Returns

void

onerror — method signatures

Signatures

ts
(event: WebSocketEvent): void

Parameters

NameTypeRequiredDescription
eventWebSocketEventYes—

Returns

void

onclose — method signatures

Signatures

ts
(event: WebSocketEvent): void

Parameters

NameTypeRequiredDescription
eventWebSocketEventYes—

Returns

void

addEventListener — method signatures

Signatures

ts
(type: WebSocketEvent["type"], listener: (event: WebSocketEvent) => void): void

Parameters

NameTypeRequiredDescription
type"close" | "open" | "error" | "message"Yes—
listener(event: WebSocketEvent) => voidYes—

Returns

void

removeEventListener — method signatures

Signatures

ts
(type: WebSocketEvent["type"], listener: (event: WebSocketEvent) => void): void

Parameters

NameTypeRequiredDescription
type"close" | "open" | "error" | "message"Yes—
listener(event: WebSocketEvent) => voidYes—

Returns

void

send — method signatures

Signatures

ts
(data: string | ArrayBuffer | ArrayBufferView): void

Parameters

NameTypeRequiredDescription
datastring | ArrayBuffer | ArrayBufferView<ArrayBufferLike>Yes—

Returns

void

close — method signatures

Signatures

ts
(code?: number, reason?: string): void

Parameters

NameTypeRequiredDescription
codenumberNo—
reasonstringNo—

Returns

void

Generated from the public TypeScript declarations: signatures, props and defaults come from the checked source, descriptions from its JSDoc. No defaults are invented.