Skip to content

Documentation / @super-line/server / SocketServer

Interface: SocketServer<C, A>

Defined in: index.ts:235

A running super-line server, returned by createSocketServer.

Type Parameters

C

C extends Contract

A

A extends AuthResult<C>

Properties

cluster

readonly cluster: ClusterView

Defined in: index.ts:241

Asynchronous, cluster-wide introspection backed by the adapter's presence directory.


local

readonly local: LocalView

Defined in: index.ts:239

Synchronous, node-local introspection (connections, rooms, topics on this process).


nodeId

readonly nodeId: string

Defined in: index.ts:237

This node's stable id (unique per server process).

Methods

close()

close(): Promise<void>

Defined in: index.ts:263

Returns

Promise<void>


emitServer()

emitServer<E>(event, data): void

Defined in: index.ts:257

Broadcast a typed event to all OTHER server nodes (at-most-once, excludes self).

Type Parameters

E

E extends string | number | symbol

Parameters

event

E

data

ServerEmit<ServerEvents<C>[E]>

Returns

void


forRole()

forRole<R>(role): RoleLens<C, R>

Defined in: index.ts:255

Lens for role-scoped sends, e.g. forRole('user').publish('feed', data).

Type Parameters

R

R extends string

Parameters

role

R

Returns

RoleLens<C, R>


implement()

implement(handlers): SocketServer<C, A>

Defined in: index.ts:249

Register handlers for shared + per-role requests (chainable).

Parameters

handlers

Handlers<C, A>

Returns

SocketServer<C, A>


isOnline()

isOnline(userId): Promise<boolean>

Defined in: index.ts:243

Whether a user (by identify key) has at least one live connection anywhere.

Parameters

userId

string

Returns

Promise<boolean>


onServer()

onServer<E>(event, handler): () => void

Defined in: index.ts:259

Listen for inter-server events from other nodes. Returns an unsubscribe fn.

Type Parameters

E

E extends string | number | symbol

Parameters

event

E

handler

(data) => void

Returns

() => void


publish()

publish<T>(topic, data): void

Defined in: index.ts:253

Publish a SHARED topic to all subscribers (server-only publish).

Type Parameters

T

T extends string | number | symbol

Parameters

topic

T

data

EmitData<TopicsOf<StcOf<C["shared"]>>[T]>

Returns

void


room()

room(name): Room<C>

Defined in: index.ts:251

Mixed-role connection group; broadcast() sends a shared contract event to members.

Parameters

name

string

Returns

Room<C>


toConn()

toConn(id): ConnTarget<C>

Defined in: index.ts:245

Target a single connection by id, on whatever node holds it (cross-node emit/close).

Parameters

id

string

Returns

ConnTarget<C>


toUser()

toUser(userId): UserTarget<C>

Defined in: index.ts:247

Target all of a user's connections (by identify key) across nodes (emit/disconnect).

Parameters

userId

string

Returns

UserTarget<C>

Released under the MIT License.