WebSocket

Bun

Symbol

WebSocket

class WebSocket

A WebSocket client implementation

const ws = new WebSocket("ws://localhost:8080", {
 headers: {
   "x-custom-header": "hello",
 },
});

ws.addEventListener("open", () => {
  console.log("Connected to server");
});

ws.addEventListener("message", (event) => {
  console.log("Received message:", event.data);
});

ws.send("Hello, server!");
ws.terminate();
  • binaryType: 'arraybuffer' | 'nodebuffer'

    The type of binary data being received.

  • readonly bufferedAmount: number

    The number of bytes of data that have been queued using send() but not yet transmitted to the network

  • readonly extensions: string

    The extensions selected by the server

  • onclose: null | (this: WebSocket, ev: CloseEvent) => any

    Event handler for close event

  • onerror: null | (this: WebSocket, ev: Event) => any

    Event handler for error event

  • onmessage: null | (this: WebSocket, ev: new (type: string, eventInitDict?: MessageEventInit<T>) => MessageEvent<T>) => any

    Event handler for message event

  • onopen: null | (this: WebSocket, ev: Event) => any

    Event handler for open event

  • readonly protocol: string

    The protocol selected by the server

  • readonly readyState: 0 | 1 | 2 | 3

    The current state of the connection

  • readonly url: string

    The URL of the WebSocket connection

  • readonly static CLOSED: 3
  • readonly static CLOSING: 2
  • readonly static CONNECTING: 0
  • readonly static OPEN: 1
  • addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void

    Registers an event handler of a specific event type on the WebSocket.

    @param type

    A case-sensitive string representing the event type to listen for

    @param listener

    The function to be called when the event occurs

    @param options

    An options object that specifies characteristics about the event listener

    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void

    Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.

    The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.

    When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.

    When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.

    When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.

    If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.

    The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.

    MDN Reference

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

    Closes the WebSocket connection

    @param code

    A numeric value indicating the status code

    @param reason

    A human-readable string explaining why the connection is closing

  • dispatchEvent(event: Event): boolean

    Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.

  • ping(data?: string | ArrayBufferLike | ArrayBufferView<ArrayBufferLike>): void

    Sends a ping frame to the server

    @param data

    Optional data to include in the ping frame

  • pong(data?: string | ArrayBufferLike | ArrayBufferView<ArrayBufferLike>): void

    Sends a pong frame to the server

    @param data

    Optional data to include in the pong frame

  • removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void

    Removes an event listener previously registered with addEventListener()

    @param type

    A case-sensitive string representing the event type to remove

    @param listener

    The function to remove from the event target

    @param options

    An options object that specifies characteristics about the event listener

    removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void

    Removes the event listener in target's event listener list with the same type, callback, and options.

    MDN Reference

  • send(data: string | ArrayBufferLike | ArrayBufferView<ArrayBufferLike>): void

    Transmits data to the server

    @param data

    The data to send to the server

  • terminate(): void

    Immediately terminates the connection