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

Référence d'API — @nodefony/realtime — interfaces

stable

Documentation › Référence d’API › @nodefony/realtime › interfaces

Générée depuis les déclarations de types publiées de @nodefony/realtime 10.0.0-beta.6 : 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/realtime#

import { … } from "@nodefony/realtime" — 19 symboles.

Interfaces (12)#

IBackplane#

interface IBackplane

Contrat d’un backplane realtime. Implémentation stateless du point de vue métier (l’état des canaux vit dans le hub) ; le backplane ne porte que le transport vers les pairs + son identité.

IBackplaneMessage#

interface IBackplaneMessage

Message transporté entre pairs par le backplane. Sérialisé une fois à l’émission (IPC structuredClone / Redis JSON) ; le payload doit donc être structurellement clonable / sérialisable (pas de fonction, pas de cycle).

IClientLogsLimits#

interface IClientLogsLimits

Bornes de la réception des journaux remontés par un navigateur.

ICompiledRealtimeMatcher#

interface ICompiledRealtimeMatcher

Forme compilée d’un matcher — utilisé en interne par le hub (cache de la RegExp compilée + host lowercase). Pas destiné à l’API publique.

IRealtimeAuthenticator#

interface IRealtimeAuthenticator

Stratégie d’authentification au handshake WebSocket — équivalent realtime du pattern IAuthenticator côté HTTP de @nodefony/security.

IRealtimeAuthenticatorMatcher#

interface IRealtimeAuthenticatorMatcher

Sélecteur d’une zone WS protégée — équivalent realtime de ISecuredArea côté HTTP de @nodefony/security (pattern URL + vhost optionnel).

IRealtimeConnProbe#

interface IRealtimeConnProbe

Vue d’UNE connexion realtime pour la sonde (backpressure = risque #1).

IRealtimeConnection#

interface IRealtimeConnection

Une connexion temps réel servie par CE processus — la poignée qu’un gestionnaire @RealtimeInbound reçoit, et que les gestes du hub sur les membres d’un canal désignent (RealtimeHub.subscribeConnection, RealtimeHub.evictConnection, RealtimeHub.channelMembers).

IRealtimeConnectionState#

interface IRealtimeConnectionState

État du protocole temps réel d’UNE connexion WebSocket — posé au welcome, et relu à chaque frame jusqu’à la fermeture.

IRealtimeController#

interface IRealtimeController

IRealtimeController — contrat d’un contrôleur temps réel SERVEUR (endpoint WS JSON-RPC 2.0). Le protocole (discrimination, dispatch, actions, pending, pub/sub, cleanup) est porté par RealtimeController via un JsonRpcPeer PAR connexion ; le contrôleur concret ne fournit QUE ses providers de canaux.

IRealtimeHandshake#

interface IRealtimeHandshake

Données de handshake WebSocket — DTO minimal passé à un IRealtimeAuthenticator pour qu’il extraie un credential et valide l’identité, SANS coupler ce module à @nodefony/http runtime.

IRealtimeToken#

interface IRealtimeToken

Jeton realtime — surface MINIMALE de l’identité d’une connexion WebSocket.

Types (7)#

BackplaneHandler#

type BackplaneHandler = (msg: IBackplaneMessage) => void

Handler d’ingress : reçoit un message publié par un autre pair. L’echo du pair courant a déjà été filtré par l’implémentation → le handler peut réinjecter sans condition (mais en fan-out local only).

ContractRealtimePublish#

type ContractRealtimePublish<C extends IRealtimeContract> = <K extends EventNames<ContractServerEmit<C>>>(channel: K, payload: EventPayload<ContractServerEmit<C>, K> & object) => void

Publie sur un canal DÉCLARÉ par le contrat C : le nom est l’un des canaux de serverToClient, la charge est celle qu’il déclare. Une faute de frappe dans le nom ou dans la charge ne compile pas.

RealtimeActionHandler#

type RealtimeActionHandler = { handle(params: unknown): unknown; }["handle"]

Handler d’action RPC tel que la table de realtimeActions() le range. Signature de MÉTHODE (paramètre comparé de façon bivariante) : une table typée par le contrat, dont chaque handler attend sa forme, remplace ainsi la table permissive de la base.

RealtimeInboundHandler#

type RealtimeInboundHandler = (params: unknown, reply: (payload: unknown) => void, connection: IRealtimeConnection) => void

Handler d’un message ENTRANT sur un canal full-duplex (client → serveur). C’est le seam des backings entrants (SIP, bridge) : le client publish(channel, payload) ; si le contrôleur a déclaré ce canal dans realtimeInbound(), le handler est appelé.

RealtimeInboundHandlers#

type RealtimeInboundHandlers<Listen extends EventsMap, Emit extends EventsMap> = { [K in EventNames<Listen>]?: TypedRealtimeInboundHandler<EventPayload<Listen, K>, K extends keyof Emit ? Emit[K] : unknown>; }

Table des entrées client d’un contrôleur : un handler par canal de Listen, chacun facultatif — accepter une entrée reste un choix explicite, canal par canal (par défaut, un client ne peut rien pousser). Listen non déclaré : n’importe quel nom, params: unknown.

RealtimePublish#

type RealtimePublish = (channel: string, payload?: object) => void

Publie une charge sur un canal (notification serveur→client) — forme LIBRE : tout nom, toute charge objet. Sous un contrat, préférer ContractRealtimePublish.

TypedRealtimeInboundHandler#

type TypedRealtimeInboundHandler<P, R> = { handle(params: P, reply: (payload: R) => void, connection: IRealtimeConnection): void; }["handle"]

Handler d’entrée TYPÉ par le contrat : params est ce que le client a émis sur ce canal, lu par Jsonify ; reply pousse la charge que le serveur émet sur le même canal. Les paramètres restent NON FIABLES : le type n’est pas une validation.


← Toutes les références d’API