Nodefony 10.0.0-beta.5
Framework Node.js fullstack — HTTP & WebSocket, même contexte

Référence d'API — @nodefony/http — context

stable

Documentation › Référence d’API › @nodefony/http › context

Générée depuis les déclarations de types publiées de @nodefony/http 10.0.0-beta.5 : exactement ce que reçoit une application qui l’installe. Cette page n’existe dans aucun dépôt — pour la corriger, on corrige le TSDoc du code.

@nodefony/http#

import { … } from "@nodefony/http" — 36 symboles.

Classes (11)#

Context#

class Context extends Service implements IContextInterface

Http2Request#

class Http2Request extends HttpRequest

Http2Response#

class Http2Response extends HttpResponse

HttpContext#

class HttpContext extends Context implements IHttpContextInterface

HttpRequest#

class HttpRequest

HttpResponse#

class HttpResponse

Response#

class HttpResponse

SseStream#

class SseStream

Un flux text/event-stream ouvert sur une réponse.

WebsocketContext#

class WebsocketContext extends Context implements IWebsocketContextInterface

WebsocketResponse#

class WebsocketResponse

wsResponse#

class WebsocketResponse

Fonctions (7)#

acceptsEventStream#

function acceptsEventStream(accept: string | string[]): boolean

Le client accepte-t-il un flux d’événements ? Lit l’en-tête Accept.

compileDomainPattern#

function compileDomainPattern(pattern: DomainPattern): RegExp

Compile UN pattern de domaine en RegExp selon la politique sûre.

compileDomainPatterns#

function compileDomainPatterns(patterns: DomainPattern | DomainPattern[]): RegExp[]

Compile une liste de patterns. Les string vides sont ignorées (un ^$ ne sert à rien et masque une coquille de config).

compileTrustedHosts#

function compileTrustedHosts(domain: string, trusted: ITrustedHostsConfig, isDev: boolean): RegExp[]

Construit la liste RegExp de la barrière trustedHosts (kernel, avant routing).

isDomainAllowed#

function isDomainAllowed(regAlias: RegExp[], domain: string): boolean

Teste un Host entrant contre une liste de RegExp pré-compilée.

isWebsocketContext#

function isWebsocketContext(context: ContextType): context is WebsocketContext

Dit si un contexte sert une connexion WebSocket — la garde qui rétrécit ContextType à WebsocketContext sans conversion.

openSseStream#

function openSseStream(context: HttpContext, options?: ISseStreamOptions): SseStream | Promise<SseStream>

Ouvre un flux d’événements sur la réponse d’un contexte HTTP.

Constantes (4)#

REQUEST_TRACE_CHANNEL#

const REQUEST_TRACE_CHANNEL = "nodefony.http.request"

Nom du TracingChannel qui encadre chaque requête HTTP et chaque handshake WebSocket — forme module.fonction recommandée par la documentation de node:diagnostics_channel ; les sous-canaux sont tracing:nodefony.http.request:start, :end, :asyncStart, :asyncEnd, :error.

SSE_HEARTBEAT_MS#

const SSE_HEARTBEAT_MS = 15000

Battement de cœur par défaut, en ms (§9.2.7 : « every 15 seconds or so »).

decideSend#

const decideSend: (ws: IBackpressureTarget, max: number, policy: WsBackpressurePolicy, closeAfterDrops?: number) => WsSendDecision

Décide si une frame doit partir vers ws selon la backpressure SORTANTE (serveur → client). Protège la RAM d’envoi du serveur quand le client est lent à RECEVOIR (ne lit pas assez vite → ws.bufferedAmount gonfle → OOM). broadcast() amplifie : un seul client lent peut, sans borne, faire tomber la diffusion entière.

readBackpressureOptions#

const readBackpressureOptions: (wss: WebSocketServer | null) => { max: number; policy: WsBackpressurePolicy; closeAfterDrops: number; }

Relit le seuil + la politique depuis les options du WebSocketServer.

Interfaces (5)#

IBackpressureSocket#

interface IBackpressureSocket extends Ws

Socket augmentée d’un compteur de drops (number lazy — lu par la sonde socket).

IBackpressureTarget#

interface IBackpressureTarget

Ce dont la règle a besoin, et rien de plus : la taille de la file d’envoi et de quoi fermer. Typé STRUCTURELLEMENT pour que @nodefony/realtime applique la même règle sans importer ws (son transport type déjà sa connexion ainsi).

ISseSendOptions#

interface ISseSendOptions

Ce qu’un événement porte en plus de ses données.

ISseStreamOptions#

interface ISseStreamOptions

Options d’ouverture d’un flux.

IWsBackpressureOptions#

interface IWsBackpressureOptions

Options de backpressure SORTANTE (serveur → client).

Types (9)#

Cookies#

type Cookies = Record<string, Cookie>

DomainPattern#

type DomainPattern = string | RegExp

Un pattern de domaine : string (exact ou *-wildcard) ou RegExp (libre).

HTTPMethod#

type HTTPMethod = "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "CONNECT" | "OPTIONS" | "TRACE" | "PATCH" | "WEBSOCKET"

ITrustedHostsConfig#

type ITrustedHostsConfig = boolean | DomainPattern | DomainPattern[]

Valeur de configuration http.trustedHosts (barrière sécu avant routing) : - false / absent : défaut (domaine canonique + loopback en dev). - true : bypass total — tout Host passe (déploiement où un reverse-proxy filtre déjà le Host, cf doctrine cloud-native). - string / string[] : patterns additionnels (exact ou *-wildcard).

WebSocketState#

type WebSocketState = "handshake" | "connected" | "closed" | "error" | "message" | null

WsBackpressurePolicy#

type WsBackpressurePolicy = "drop" | "close"

Politique appliquée quand le buffer d’envoi d’un client dépasse le seuil.

WsSendDecision#

type WsSendDecision = "send" | "drop" | "close"

Décision pour une frame : l’émettre, la sauter, ou (socket fermée) ne rien faire.

contextRequest#

type contextRequest = HttpRequest | Http2Request | http.IncomingMessage | null

contextResponse#

type contextResponse = HttpResponse | Http2Response | WebsocketResponse | null

← Toutes les références d’API