Slokr
Server class for @briklab/slokr.
Constructor
new Slokr(mode: Slokr.ValidMode, port = 3000, host = "0.0.0.0")
Creates and starts a server binding in the selected mode.
| Param | Type | Description |
|---|---|---|
mode | Slokr.ValidMode | "WebSocket", "WebTransport", or "Hybrid". |
port | number | Listening port. |
host | string | Listening host/interface. |
Properties
bindings: Bindings
Internal binding instance (not part of the public package exports, but available on class instances).
connected: Promise<"connected">
Resolves when the configured transport(s) are fully ready.
stats
Runtime stats object:
ts
{
online: number;
activeProtocols: Slokr.FLAGS;
ready: boolean;
}Methods
on(eventName: string, callback: Slokr.EVENT)
Attach event listeners.
Special event names:
"any""connection""close"
listen(eventName: string, callback: Slokr.EVENT)
Alias for on.
receive(eventName: string, timeout = 0): Promise<any>
Wait until the given event is emitted. If timeout > 0, rejects on timeout.
broadcast(eventName: string, data: any): Promise<void>
Send an event to every connected client across enabled transport(s).
send(eventName: string, data: any): Promise<void>
Alias for broadcast.
sendTo(client: Slokr.Client, name: string, data: any)
Reply directly to one client.
for(client: Slokr.Client)
Returns per-client helpers:
.send(name, data).join(room).leave(room).broadcast(room, name, data)
rooms(...rooms)
Room-targeting chain API.
Accepted forms:
rooms("room-a", "room-b")rooms(["room-a", "room-b"])rooms("all")
Chain methods:
.except(...rooms).broadcast(name, data).on(eventName, callback)
close()
Shuts down active server resources (WebSocket, HTTP/HTTPS, WebTransport).
Example
ts
import { Slokr } from "@briklab/slokr";
const server = new Slokr(Slokr.WebSocket, 3000);
await server.connected;
server.on("connection", (_, client) => {
server.for(client).join("global");
});
server.rooms("global").on("chat", (data) => {
console.log("global room message", data);
});