Defjs
Core

WebSocketSessionLike

Minimal WebSocket session surface that interceptors see.

@defjs/core · Type

Signature

interface WebSocketSessionLike extends AsyncDisposable {
  readonly bufferedAmount: number;
  readonly connection: {
    extensions?: string;
    generation: number;
    protocol?: string;
    url?: string;
  };
  readonly closed: Promise<WebSocketCloseInfo>;
  readonly receive: AsyncIterable<unknown>;
  readonly state: WebSocketState;
  close(code?: number, reason?: string): void;
  [Symbol.asyncDispose](): PromiseLike<void>;
  onRuntimeError(listener: (error: unknown) => void): () => void;
  onStateChange(listener: (state: WebSocketState) => void): () => void;
  send(message: unknown): void;
}

Structurally compatible with WebSocketSession without importing that type, which avoids a circular dependency between interceptors and WebSocket. Messages are typed unknown.

A wrapper or short-circuit session must forward the same [Symbol.asyncDispose]() teardown as its close / closed lifecycle; returning an unrelated resolved promise is not sufficient. Requiring this member is a compile-time breaking change for structural implementations. Code that only accepts sessions returned by Defjs has no additional runtime call requirement.

Members

Prop

Type

bufferedAmount number
connection { extensions?: string; generation: number; protocol?: string; url?: string; }
closed Promise<WebSocketCloseInfo>
receive AsyncIterable<unknown>
state WebSocketState
close (code?: number, reason?: string) => void
[Symbol.asyncDispose] () => PromiseLike<void>
onRuntimeError (listener: (error: unknown) => void) => () => void
onStateChange (listener: (state: WebSocketState) => void) => () => void
send (message: unknown) => void
Edit this page on GitHub
Released under the MIT License. · Copyright © 2026 MunMunMiao