ws-asyncapi API / emitter / createEmitter
Function: createEmitter()
createEmitter<
C>(backplane,options?):object
Defined in: .api-entries/emitter/index.d.ts:28
Emit events to connected clients from a process that isn't running a server — the Socket.IO @socket.io/redis-emitter equivalent. Hand it a backplane shared with the running servers (e.g. a RedisBackplane pointed at the same Redis) and publish: the servers' onMessage fans your events out to their connected clients. Typed against a channel via typeof channel.
import { RedisBackplane } from "@ws-asyncapi/backplane-redis";
import { createEmitter } from "@ws-asyncapi/emitter";
import type { chat } from "./contract";
const emitter = createEmitter<typeof chat>(
new RedisBackplane({ url: "redis://localhost:6379" }),
);
emitter.publish("room:1", "message", { from: "billing", text: "paid" });One-way only: emit to rooms / sockets. Acks, presence, and inbound messages require a running server.
Type Parameters
C
C extends AnyChannel
Parameters
backplane
Backplane
options?
Returns
publish()
publish<
E>(room,event,data):Promise<void>
Emit an event to everyone in room, cluster-wide.
Type Parameters
E
E extends string
Parameters
room
string
event
E
data
InferClient<C>["eventMap"][E]
Returns
Promise<void>
toSocket()
toSocket<
E>(socketId,event,data):Promise<void>
Emit an event to a single socket by id, cluster-wide.
Type Parameters
E
E extends string
Parameters
socketId
string
event
E
data
InferClient<C>["eventMap"][E]
Returns
Promise<void>
close()
close():
Promise<void>
Close the underlying backplane connection.
Returns
Promise<void>