Skip to content

IpcSocket

Defined in: packages/node/src/net/ipc-socket.ts:42

Stream socket over a Unix domain socket or a Windows named pipe.

Example usage:

const socket = IpcSocket.from();
await socket.connect("/var/run/app.sock");
await socket.write(Buffer.from("ping\n"));
await socket.end({ waitForClose: true });

A pipe inherited from a parent process is already connected and is adopted through IpcSocket.fromFd instead.

TSocket extends net.Socket = net.Socket

TEvents extends IpcSocketEvents = IpcSocketEvents

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

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

Creates a new StreamSocket instance.

TSocket

The underlying Node.js socket.

IpcSocket<TSocket, TEvents>

StreamSocket.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

StreamSocket.bytesRead


get bytesWritten(): number

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

Total number of bytes written to the socket so far.

number

StreamSocket.bytesWritten


get closed(): boolean

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

Indicates whether the socket has been fully closed.

boolean

StreamSocket.closed


get connecting(): boolean

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

Whether the socket is currently in the process of connecting.

boolean

StreamSocket.connecting


get destroyed(): boolean

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

Indicates whether the underlying socket has been destroyed.

boolean

StreamSocket.destroyed


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

StreamSocket.stream


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

StreamSocket.timeout

connect(path, options?): Promise<void>

Defined in: packages/node/src/net/ipc-socket.ts:85

Connects to the endpoint listening on the given path.

string

Filesystem path of the Unix domain socket, or the name of the Windows named pipe.

IpcSocketConnectOptions

Connection options, including an optional abort signal.

Promise<void>

A promise that resolves when the connection is established.

When the connection fails, when the socket closes before connecting, or when the signal is aborted.


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

StreamSocket.destroy


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.

StreamSocket.end


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

StreamSocket.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

StreamSocket.ref


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

StreamSocket.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

StreamSocket.unref


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

StreamSocket.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.

StreamSocket.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.

StreamSocket.write


static from(options?): IpcSocket

Defined in: packages/node/src/net/ipc-socket.ts:52

Creates a new IpcSocket instance.

Options for creating the underlying Node.js socket.

boolean

BlockList

BoundSocket

boolean

number

boolean

OnReadOpts

boolean

AbortSignal

number

boolean

IpcSocket

A new IpcSocket instance.

StreamSocket.from


static fromFd(fd, options?): IpcSocket

Defined in: packages/node/src/net/ipc-socket.ts:69

Adopts an already-open file descriptor, such as a pipe inherited from a parent process. The returned socket is connected and needs no IpcSocket.connect call.

The descriptor is adopted as bidirectional; pass readable or writable to adopt a one-way pipe, since Node.js disables both by default for a descriptor-backed socket.

number

The open file descriptor to adopt.

Options for creating the underlying Node.js socket.

boolean

BlockList

BoundSocket

boolean

number

boolean

OnReadOpts

boolean

AbortSignal

number

boolean

IpcSocket

A new, already connected IpcSocket instance.