SocketContract
interfaz
Contrato público de un canal Socket: los schemas de cada evento en cada dirección. Meeko lo
genera a partir de defineSocketChannel sin importar los handlers privados.
ts
import type { SocketContract } from "@meekojs/meeko/framework";Source code src/app/runtime/socket.ts:52
Declaración #
ts
interface SocketContract<ClientToServer extends Events = Events, ServerToClient extends Events = Events> {
readonly clientToServer: ClientToServer
readonly serverToClient: ServerToClient
}Type parameters #
-
ClientToServerextends Events = Events -
ServerToClientextends Events = Events
Example #
ts
import * as v from "valibot";
import type { SocketContract } from "@meekojs/meeko/framework";
const chat = {
clientToServer: { message: v.object({ text: v.string(), roomId: v.string() }) },
serverToClient: { message: v.object({ text: v.string() }) },
} satisfies SocketContract;Propiedades #
clientToServer
#
readonly clientToServer: ClientToServerEventos que envía el cliente, con su schema.
serverToClient
#
readonly serverToClient: ServerToClientEventos que envía el servidor, con su schema.