Skip to content

Documentation / @super-line/server / SuperLineServer

Interface: SuperLineServer<C, A>

Defined in: index.ts:293

A running super-line server, returned by createSuperLineServer.

Type Parameters

C

C extends Contract

A

A extends AuthResult<C>

Properties

cluster

readonly cluster: ClusterView

Defined in: index.ts:301

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


local

readonly local: LocalView

Defined in: index.ts:299

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


nodeId

readonly nodeId: string

Defined in: index.ts:295

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


nodeName

readonly nodeName: string

Defined in: index.ts:297

This node's friendly name (from nodeName/SUPER_LINE_NODE_NAME, else a short nodeId slice).

Methods

close()

close(): Promise<void>

Defined in: index.ts:328

Returns

Promise<void>


forRole()

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

Defined in: index.ts:325

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): SuperLineServer<C, A>

Defined in: index.ts:309

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

Parameters

handlers

Handlers<C, A>

Returns

SuperLineServer<C, A>


isOnline()

isOnline(userId): Promise<boolean>

Defined in: index.ts:303

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

Parameters

userId

string

Returns

Promise<boolean>


publish()

publish<T>(topic, data): void

Defined in: index.ts:313

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:311

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

Parameters

name

string

Returns

Room<C>


store()

store(name): ServerStoreHandle

Defined in: index.ts:327

Server-authoritative handle for a configured Store (srv.store('scene').create(...)). Throws NOT_FOUND if the name isn't configured.

Parameters

name

string

Returns

ServerStoreHandle


subscribe()

subscribe<T>(topic, handler): () => void

Defined in: index.ts:320

Subscribe SERVER-side to a shared topic, cluster-wide. The callback fires for a publish from any node — including this one (local echo, delivered in-process with no round-trip). meta.from is the publishing node; self-exclude with if (meta.from === srv.nodeId) return. Returns an unsubscribe fn.

Type Parameters

T

T extends string | number | symbol

Parameters

topic

T

handler

(data, meta) => void

Returns

() => void


toConn()

toConn(id): ConnTarget<C>

Defined in: index.ts:305

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:307

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.