Skip to content
Meeko
Type to search the guides and the API reference. Open it from any page with / or Ctrl K; move with the arrow keys and open a result with Enter.
Get started

Contents

On this page

Not translated yet

This page has not been translated into English yet, so it is shown in Spanish.

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";

Source code 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>
}

Type parameters #

Services = unknown

Tipo de los servicios.

Env = unknown

Tipo de las variables o bindings del entorno.

Example #

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 since 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.

See also #

Was this page helpful?

Add a comment

It is sent when you choose “Yes” or “No”. Only the page, your answer and the comment are stored: no cookies and no personal data.

0 of 2000 characters

Edit on GitHub: packages/meeko/src/server/runtime/definition.ts