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:
- A stable, duplex stream for reading and writing data.
- Common lifecycle properties such as closed, destroyed, bytesRead, bytesWritten and connecting.
- Timeout management via the timeout property.
- Promise-based end and write helpers.
- Strongly-typed lifecycle events via StreamSocketEvents.
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.
Extends
Section titled “Extends”EventDispatcherMapBase<TEvents>
Extended by
Section titled “Extended by”Type Parameters
Section titled “Type Parameters”TSocket
Section titled “TSocket”TSocket extends net.Socket = net.Socket
TEvents
Section titled “TEvents”TEvents extends StreamSocketEvents = StreamSocketEvents
Implements
Section titled “Implements”IEventDispatcherMap<TEvents>
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new StreamSocket<
TSocket,TEvents>(socket):StreamSocket<TSocket,TEvents>
Defined in: packages/node/src/net/stream-socket.ts:121
Creates a new StreamSocket instance.
Parameters
Section titled “Parameters”socket
Section titled “socket”TSocket
The underlying Node.js socket.
Returns
Section titled “Returns”StreamSocket<TSocket, TEvents>
Overrides
Section titled “Overrides”EventDispatcherMapBase<TEvents>.constructor
Accessors
Section titled “Accessors”bytesRead
Section titled “bytesRead”Get Signature
Section titled “Get Signature”get bytesRead():
number
Defined in: packages/node/src/net/stream-socket.ts:147
Total number of bytes read from the socket so far.
Returns
Section titled “Returns”number
bytesWritten
Section titled “bytesWritten”Get Signature
Section titled “Get Signature”get bytesWritten():
number
Defined in: packages/node/src/net/stream-socket.ts:152
Total number of bytes written to the socket so far.
Returns
Section titled “Returns”number
closed
Section titled “closed”Get Signature
Section titled “Get Signature”get closed():
boolean
Defined in: packages/node/src/net/stream-socket.ts:137
Indicates whether the socket has been fully closed.
Returns
Section titled “Returns”boolean
connecting
Section titled “connecting”Get Signature
Section titled “Get Signature”get connecting():
boolean
Defined in: packages/node/src/net/stream-socket.ts:157
Whether the socket is currently in the process of connecting.
Returns
Section titled “Returns”boolean
destroyed
Section titled “destroyed”Get Signature
Section titled “Get Signature”get destroyed():
boolean
Defined in: packages/node/src/net/stream-socket.ts:142
Indicates whether the underlying socket has been destroyed.
Returns
Section titled “Returns”boolean
stream
Section titled “stream”Get Signature
Section titled “Get Signature”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.
Returns
Section titled “Returns”Duplex
timeout
Section titled “timeout”Get Signature
Section titled “Get Signature”get timeout():
number|null
Defined in: packages/node/src/net/stream-socket.ts:162
Current inactivity timeout in milliseconds, or null if disabled.
Returns
Section titled “Returns”number | null
Set Signature
Section titled “Set Signature”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.
Parameters
Section titled “Parameters”timeout
Section titled “timeout”number | null
Returns
Section titled “Returns”void
Methods
Section titled “Methods”destroy()
Section titled “destroy()”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.
Returns
Section titled “Returns”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.
Parameters
Section titled “Parameters”options?
Section titled “options?”Optional settings for ending the socket.
Returns
Section titled “Returns”Promise<void>
A promise that resolves once the socket has ended.
isSubscribed()
Section titled “isSubscribed()”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.
Type Parameters
Section titled “Type Parameters”K extends string | number | symbol
Parameters
Section titled “Parameters”K
The event name.
listener
Section titled “listener”Callable<TEvents[K]>
The callback to check.
Returns
Section titled “Returns”boolean
Implementation of
Section titled “Implementation of”IEventDispatcherMap.isSubscribed
Inherited from
Section titled “Inherited from”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.
Returns
Section titled “Returns”void
subscribe()
Section titled “subscribe()”subscribe<
K>(event,listener,options?):Callable|null
Defined in: packages/async/src/events/event-dispatcher-map-base.ts:23
Type Parameters
Section titled “Type Parameters”K extends string | number | symbol
Parameters
Section titled “Parameters”K
listener
Section titled “listener”Callable<TEvents[K]>
options?
Section titled “options?”EventDispatcherSubscribeOptions
Returns
Section titled “Returns”Callable | null
Implementation of
Section titled “Implementation of”IEventDispatcherMap.subscribe
Inherited from
Section titled “Inherited from”EventDispatcherMapBase.subscribe
unref()
Section titled “unref()”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.
Returns
Section titled “Returns”void
unsubscribe()
Section titled “unsubscribe()”unsubscribe<
K>(event,listener):void
Defined in: packages/async/src/events/event-dispatcher-map-base.ts:31
Unsubscribe a callback from a specific event.
Type Parameters
Section titled “Type Parameters”K extends string | number | symbol
Parameters
Section titled “Parameters”K
The event name.
listener
Section titled “listener”Callable<TEvents[K]>
The callback to remove.
Returns
Section titled “Returns”void
Implementation of
Section titled “Implementation of”IEventDispatcherMap.unsubscribe
Inherited from
Section titled “Inherited from”EventDispatcherMapBase.unsubscribe
wait()
Section titled “wait()”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.
Type Parameters
Section titled “Type Parameters”K extends string | number | symbol
Parameters
Section titled “Parameters”K
The event name to wait for.
options?
Section titled “options?”EventDispatcherWaitOptions<TEvents[K]>
Optional settings including predicate and abort signal.
Returns
Section titled “Returns”Promise<TEvents[K]>
A promise that resolves with the event arguments as an array.
Implementation of
Section titled “Implementation of”IEventDispatcherMap.wait
Inherited from
Section titled “Inherited from”EventDispatcherMapBase.wait
write()
Section titled “write()”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.
Parameters
Section titled “Parameters”Uint8Array
The data to write.
Returns
Section titled “Returns”Promise<void>
Throws
Section titled “Throws”When the socket errors or is destroyed before the chunk flushes.
from()
Section titled “from()”
staticfrom(options?):StreamSocket
Defined in: packages/node/src/net/stream-socket.ts:112
Creates a new StreamSocket instance.
Parameters
Section titled “Parameters”options?
Section titled “options?”SocketConstructorOpts
Options for creating the underlying Node.js socket.
Returns
Section titled “Returns”StreamSocket
A new StreamSocket instance.