Skip to content

StreamSocket

Defined in: packages/node/src/net/stream-socket.ts:97

Base class for stream-oriented client sockets.

This abstraction wraps a net.Socket instance and exposes:

It is intentionally transport-agnostic: it does not assume a particular address family or protocol. Concrete subclasses such as TcpSocket add protocol-specific concerns (for example InetEndpoint accessors, TCP keep-alive configuration, or DNS resolution events) on top of this base.

Unless explicitly documented otherwise, methods mirror the semantics of their underlying net.Socket counterparts.

  • EventDispatcherMapBase<TEvents>

TSocket extends net.Socket = net.Socket

TEvents extends StreamSocketEvents = StreamSocketEvents

  • IEventDispatcherMap<TEvents>

new StreamSocket<TSocket, TEvents>(socket): StreamSocket<TSocket, TEvents>

Defined in: packages/node/src/net/stream-socket.ts:121

Creates a new StreamSocket instance.

TSocket

The underlying Node.js socket.

StreamSocket<TSocket, TEvents>

EventDispatcherMapBase<TEvents>.constructor

get bytesRead(): number

Defined in: packages/node/src/net/stream-socket.ts:147

Total number of bytes read from the socket so far.

number


get bytesWritten(): number

Defined in: packages/node/src/net/stream-socket.ts:152

Total number of bytes written to the socket so far.

number


get closed(): boolean

Defined in: packages/node/src/net/stream-socket.ts:137

Indicates whether the socket has been fully closed.

boolean


get connecting(): boolean

Defined in: packages/node/src/net/stream-socket.ts:157

Whether the socket is currently in the process of connecting.

boolean


get destroyed(): boolean

Defined in: packages/node/src/net/stream-socket.ts:142

Indicates whether the underlying socket has been destroyed.

boolean


get stream(): Duplex

Defined in: packages/node/src/net/stream-socket.ts:132

Underlying duplex stream for reading and writing data.

This is the wrapped net.Socket instance and can be passed directly to APIs that expect a Node.js stream.

Duplex


get timeout(): number | null

Defined in: packages/node/src/net/stream-socket.ts:162

Current inactivity timeout in milliseconds, or null if disabled.

number | null

set timeout(timeout): void

Defined in: packages/node/src/net/stream-socket.ts:173

Updates the inactivity timeout for the socket.

When set to a positive number, the socket emits a “timeout” event if no I/O activity occurs within the given number of milliseconds. A value of 0 or null disables the timeout entirely.

number | null

void

destroy(): void

Defined in: packages/node/src/net/stream-socket.ts:262

Immediately destroys the underlying socket.

Pending I/O is discarded, the connection is closed and the socket transitions to a terminal state. Any registered “close” listeners will still be invoked.

void


end(options?): Promise<void>

Defined in: packages/node/src/net/stream-socket.ts:204

Half-closes the socket, optionally waiting for a full close.

If waitForClose is omitted or false, the promise resolves once the local side has finished sending data and the FIN has been queued. When waitForClose is true, the promise resolves only after the remote side has also closed and the “close” event has fired.

StreamSocketEndOptions

Optional settings for ending the socket.

Promise<void>

A promise that resolves once the socket has ended.


isSubscribed<K>(event, listener): boolean

Defined in: packages/async/src/events/event-dispatcher-map-base.ts:38

Check if a callback is subscribed to a specific event.

K extends string | number | symbol

K

The event name.

Callable<TEvents[K]>

The callback to check.

boolean

IEventDispatcherMap.isSubscribed

EventDispatcherMapBase.isSubscribed


ref(): void

Defined in: packages/node/src/net/stream-socket.ts:181

Marks the socket as referenced, preventing the Node.js process from exiting while the socket is active.

void


subscribe<K>(event, listener, options?): Callable | null

Defined in: packages/async/src/events/event-dispatcher-map-base.ts:23

K extends string | number | symbol

K

Callable<TEvents[K]>

EventDispatcherSubscribeOptions

Callable | null

IEventDispatcherMap.subscribe

EventDispatcherMapBase.subscribe


unref(): void

Defined in: packages/node/src/net/stream-socket.ts:189

Marks the socket as unreferenced, allowing the Node.js process to exit even if the socket is still active.

void


unsubscribe<K>(event, listener): void

Defined in: packages/async/src/events/event-dispatcher-map-base.ts:31

Unsubscribe a callback from a specific event.

K extends string | number | symbol

K

The event name.

Callable<TEvents[K]>

The callback to remove.

void

IEventDispatcherMap.unsubscribe

EventDispatcherMapBase.unsubscribe


wait<K>(event, options?): Promise<TEvents[K]>

Defined in: packages/async/src/events/event-dispatcher-map-base.ts:45

Wait for the next occurrence of a specific event, optionally matching a predicate.

This is a convenience method that subscribes to the dispatcher, waits for the next event that matches the predicate (if provided), and then unsubscribes automatically.

K extends string | number | symbol

K

The event name to wait for.

EventDispatcherWaitOptions<TEvents[K]>

Optional settings including predicate and abort signal.

Promise<TEvents[K]>

A promise that resolves with the event arguments as an array.

IEventDispatcherMap.wait

EventDispatcherMapBase.wait


write(data): Promise<void>

Defined in: packages/node/src/net/stream-socket.ts:241

Writes data to the socket and resolves once that chunk has been flushed.

Awaiting the result is what applies backpressure: the promise settles on the chunk’s own flush rather than on the whole buffer draining, so a producer that awaits each write never outruns the socket. A caller that does not await is free to queue without bound.

Uint8Array

The data to write.

Promise<void>

When the socket errors or is destroyed before the chunk flushes.


static from(options?): StreamSocket

Defined in: packages/node/src/net/stream-socket.ts:112

Creates a new StreamSocket instance.

SocketConstructorOpts

Options for creating the underlying Node.js socket.

StreamSocket

A new StreamSocket instance.