Saltar al contenido
Meeko
Escribe para buscar en las guías y en la referencia de la API. Ábrela desde cualquier página con / o Ctrl K; muévete con las flechas y entra con Intro.
Empezar

Contenidos

En esta página

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 #

C extends 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 #

propiedad sólo lectura

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 #

método

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 #

método

on<K extends keyof C['serverToClient'] & string>(event: K, listener: (data: SchemaOutput<C['serverToClient'][K]>) => void): () => void

Escucha un evento del servidor ya validado; devuelve la función que deja de escucharlo.

close #

método

close(): void

Cierra la conexión y deja de reconectar.

Véase también #

¿Te sirvió esta página?

Añadir un comentario

Se envía al elegir «Sí» o «No». Solo se guardan la página, tu respuesta y el comentario: ni cookies ni datos tuyos.

0 de 2000 caracteres

Editar en GitHub: packages/meeko/src/app/runtime/socket.ts