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

ServerRuntime

interfaz

Recursos de servidor de la aplicación, creados una vez por proceso o aislado: sesiones, servicios, política de Socket, origen público, observador de errores y cierre.

ts
import type { ServerRuntime } from "@meekojs/meeko/server";

Código fuente src/server/runtime/definition.ts:94

Declaración #

ts
interface ServerRuntime<Services = unknown, Env = unknown> {
	readonly sessions?: SessionManager<any>
	readonly services?: ServerServices<Services, Env>
	readonly socket?: {
		readonly pubsub?: SocketPubSub
		readonly onDeliveryError?: (error: unknown, context: SocketDeliveryErrorContext) => void
		readonly allowedOrigins?: readonly string[]
		readonly maxMessageBytes?: number
		readonly maxBufferBytes?: number
		readonly maxPendingDeliveries?: number
		readonly sessionRefreshMs?: number
	}
	readonly publicOrigin?: string
	readonly onError?: ServerErrorObserver
	readonly processErrors?: ProcessErrorPolicy | false
	readonly close?: () => void | Promise<void>
}

Parámetros de tipo #

Services = unknown

Tipo de los servicios.

Env = unknown

Tipo de las variables o bindings del entorno.

Ejemplo #

ts
import { MemorySessionStore, SessionManager } from "@meekojs/meeko/server";
import type { ServerRuntime } from "@meekojs/meeko/server";

const runtime: ServerRuntime<{ readonly startedAt: number }> = {
  sessions: new SessionManager({ store: new MemorySessionStore(), production: false }),
  services: { startedAt: Date.now() },
  socket: { maxMessageBytes: 64 * 1024 },
  publicOrigin: "https://example.com",
  onError: (error, requestId) => console.error("request failed", requestId, error),
};

Propiedades #

sessions #

propiedad sólo lectura opcional

readonly sessions?: SessionManager<any>

Gestor de sesiones. En producción necesita un store persistente. Desde 1.2 es opcional: sin él, Meeko usa memoria en desarrollo y, en producción, Redis con MEEKO_REDIS_URL (véase Autenticación).

services #

propiedad sólo lectura opcional

readonly services?: ServerServices<Services, Env>

Se expone como RequestContext.services a páginas, API, RPC y canales Socket.

socket #

propiedad sólo lectura opcional

readonly socket?: {
	readonly pubsub?: SocketPubSub
	readonly onDeliveryError?: (error: unknown, context: SocketDeliveryErrorContext) => void
	readonly allowedOrigins?: readonly string[]
	readonly maxMessageBytes?: number
	readonly maxBufferBytes?: number
	readonly maxPendingDeliveries?: number
	readonly sessionRefreshMs?: number
}

Política de Socket.

publicOrigin #

propiedad sólo lectura opcional

readonly publicOrigin?: string

Origen público de la aplicación, como https://example.com tras un proxy TLS. Las comprobaciones de Origin de HTTP y de Socket se comparan con él.

onError #

propiedad sólo lectura opcional

readonly onError?: ServerErrorObserver

Recibe los fallos internos con su ID de petición; nunca se envían a los clientes. Desde 1.3, también los fallos del proceso (promesas rechazadas sin manejar y excepciones no capturadas), con un tercer argumento que los identifica.

processErrors #

propiedad sólo lectura opcional desde 1.3.0

readonly processErrors?: ProcessErrorPolicy | false

Qué hacer con las promesas rechazadas sin manejar y las excepciones no capturadas del proceso. Por defecto, un rechazo se informa a onError y el servidor sigue atendiendo, y una excepción se informa y cierra el servidor de forma ordenada con código 1. false deja los dos casos al runtime. Se aplica en meeko dev, en las salidas de meeko build y en serveNode y serveDeno con handleSignals.

close #

propiedad sólo lectura opcional

readonly close?: () => void | Promise<void>

Libera los recursos del runtime después de cerrar sus sesiones.

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/server/runtime/definition.ts