SocketHub
interfaz
Hub de Socket: autoriza handshakes, acepta conexiones y reparte broadcasts. El host hace el upgrade HTTP y le pasa el peer conectado.
import type { SocketHub } from "@meekojs/meeko/server";Source code src/server/socket/runtime.ts:283
Declaración #
interface SocketHub {
preflight(name: string, request: Request, roomId?: string): Promise<void>
accept(name: string, request: Request, peer: SocketPeer, roomId?: string): Promise<SocketConnection>
broadcast(name: string, roomId: string, event: string, payload: unknown): Promise<void>
}Example #
// Un broadcast desde una API o una tarea programada.
await hub.broadcast("chat", "general", "message", { text: "Mantenimiento en 5 minutos" });Miembros #
preflight
#
preflight(name: string, request: Request, roomId?: string): Promise<void>Comprueba canal, Origin, sesión y autorización antes del upgrade; rechaza con ApiError.
accept
#
accept(name: string, request: Request, peer: SocketPeer, roomId?: string): Promise<SocketConnection>Acepta un peer; se resuelve cuando la conexión ya está suscrita a su canal y sala.
broadcast
#
broadcast(name: string, roomId: string, event: string, payload: unknown): Promise<void>Valida el evento y se resuelve cuando el broker lo acepta. Rechaza con
SOCKET_LIMIT_EXCEEDED (413), antes de publicar, si el mensaje serializado supera
maxMessageBytes. Cada peer lo recibe como mucho una vez; un peer que falla se cierra y se
informa con onDeliveryError en el hub que lo tiene.
See also #
- Broadcast and multiple instances Framework full-stack