SocketClient
interfaz
Cliente tipado de un canal Socket. La entrega es como mucho una vez: emit rechaza si está
desconectado, sin cola ni reenvío, y reconecta con retroceso.
ts
import type { SocketClient } from "@meekojs/meeko/framework";Código fuente src/app/runtime/socket.ts:105
Declaración #
ts
interface SocketClient<C extends SocketContract> {
readonly state: ReadonlySignal<SocketClientState>
emit<K extends keyof C['clientToServer'] & string>(event: K, data: SchemaInput<C['clientToServer'][K]>): Promise<void>
on<K extends keyof C['serverToClient'] & string>(event: K, listener: (data: SchemaOutput<C['serverToClient'][K]>) => void): () => void
close(): void
}Parámetros de tipo #
-
Cextends SocketContract
Ejemplo #
ts
const chat = socket.chat;
const stop = chat.on("message", (message) => console.log(message.text));
await chat.emit("message", { text: "Hola", roomId: "general" });
stop();
chat.close();Miembros #
state
#
readonly state: ReadonlySignal<SocketClientState>Estado de la conexión. "unauthorized" (desde 1.1.0) es terminal: el servidor rechazó la
autenticación o la autorización y el cliente no reintenta; close() lo pasa a "closed".
emit
#
emit<K extends keyof C['clientToServer'] & string>(event: K, data: SchemaInput<C['clientToServer'][K]>): Promise<void>Valida y envía un evento; rechaza si el socket no está abierto o el payload no es válido.
on
#
on<K extends keyof C['serverToClient'] & string>(event: K, listener: (data: SchemaOutput<C['serverToClient'][K]>) => void): () => voidEscucha un evento del servidor ya validado; devuelve la función que deja de escucharlo.
Véase también #
- WebSocket Framework full-stack