SocketUpgrade
tipo
Resultado de la comprobación de política que precede al upgrade del transporte.
ts
import type { SocketUpgrade } from "@meekojs/meeko/server";Código fuente src/server/runtime/upgrade.ts:65
Declaración #
ts
type SocketUpgrade =
| {
readonly action: 'pass'
}
| {
readonly action: 'reject'
readonly status: number
readonly close?: { readonly code: 4401 | 4403; readonly reason: string }
}
| {
readonly action: 'upgrade'
readonly channel: string
readonly roomId: string | undefined
readonly request: Request
open(peer: SocketPeer): SocketSession
}Ejemplo #
ts
const upgrade = await handleUpgrade(request);
if (upgrade.action === "pass") return app.fetch(request);
if (upgrade.action === "reject" && upgrade.close) {
// Rechazo de autenticación o autorización: acepta el WebSocket y lo cierra con upgrade.close.code.
}
if (upgrade.action === "reject") return new Response(null, { status: upgrade.status });
// upgrade.action === "upgrade": el adaptador acepta el WebSocket y llama a upgrade.open(peer).