Skip to content
Effect 4.0 is here. One ecosystem. Zero dependencies.

SocketServer unstable

Service contract for servers that accept socket connections.

SocketServer exposes the bound server address and a long-running run loop that hands each accepted connection to a handler as a Socket.Socket. Bound addresses use the shared NetAddress.SocketAddress model. This module also defines server-level errors reported while opening or running a server. Platform layers provide concrete implementations of this service.

7 exports Since v4.0.0 Source

Errors

Since v4.0.0

Tagged socket server error that wraps a server error reason and exposes its cause.

Signature

declare class SocketServerError extends YieldableError<this> & {
readonly _tag: "SocketServerError";
} & Readonly<{
readonly reason: SocketServerErrorReason;
}> {
constructor(props: {
readonly reason: SocketServerErrorReason;
});
readonly "@effect/platform/SocketServer/SocketServerError": "@effect/platform/SocketServer/SocketServerError";
message: string;
}
Since v4.0.0

Union of socket server error reasons.

Signature

type SocketServerErrorReason = SocketServerOpenError | SocketServerUnknownError
Since v4.0.0

Error reason for failures that occur while opening a socket server.

Signature

declare class SocketServerOpenError extends YieldableError<this> & {
readonly _tag: "SocketServerOpenError";
} & Readonly<{
readonly cause: unknown;
}> {
constructor(args: {
readonly cause: unknown;
});
message: string;
}

Error reason for uncategorized socket server failures.

Signature

declare class SocketServerUnknownError extends YieldableError<this> & {
readonly _tag: "SocketServerUnknownError";
} & Readonly<{
readonly cause: unknown;
}> {
constructor(args: {
readonly cause: unknown;
});
message: string;
}

Services

Since v4.0.0

Context service for a socket server, exposing its bound address and a run loop that handles each accepted Socket.

Signature

declare class SocketServer extends Shape<"@effect/platform/SocketServer", {
readonly address: SocketAddress;
readonly run: <R, E, _>(handler: (socket: Socket) => Effect<_, E, R>) => Effect<never, SocketServerError, R>;
}, this> {
constructor(_: never);
}

Type IDs

ErrorTypeId

unstable
Since v4.0.0

Runtime type identifier attached to SocketServerError values.

Signature

declare const ErrorTypeId: ErrorTypeId

ErrorTypeId

type unstable
Since v4.0.0

Type-level identifier used to mark SocketServerError values.

Signature

type ErrorTypeId = "@effect/platform/SocketServer/SocketServerError"