Référence d'API — nodefony — realtime-IRealtimeSocket
stable
Documentation › Référence d’API › nodefony › realtime-IRealtimeSocket
Générée depuis les déclarations de types publiées de
nodefony10.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#
import { … } from "nodefony" — 4 symboles.
Interfaces (3)#
IChannelStats#
interface IChannelStats
Compteurs d’un canal — génériques, calculés au point d’arrivée des frames donc fiables et réutilisables par toute app. (NodefonySocket.MessageStats en est l’alias.)
method: string— Méthode JSON-RPC == nom du canal pub/sub.msgCount: number— Total de notifications reçues sur ce canal.lastMessage: number | null— Timestamp (ms) de la dernière notification,nullsi aucune.rate: number— Débit instantané (msg/s), échantillonné 1×/s.series: number[]— Historique du débit (VU-mètre) — fenêtre glissante.
IRealtimeChannel#
interface IRealtimeChannel
Handle d’UN canal — vue par-canal d’un sous-flux duplex multiplexé sur la IRealtimeSocket. Forme naturelle des canaux à état (un appel SIP, une connexion bridgée) : il porte son nom, sa nature et son cycle de vie. C’est le point d’accroche des couches à venir (codec de protocole, cadence AIMD, politique drop|coalesce|batch) — elles enrichiront ce handle SANS retoucher la socket.
readonly name: string— Nom du canal (clé de multiplexage == method JSON-RPC des notifications).readonly kind?: string— Nature du backing serveur (pubsub|protocol|bridge|proxy| …), annoncée par le serveur.on(handler: RealtimeHandler): () => void— Branche un handler de réception sur ce canal.send(payload?: object): void— Émet sur ce canal (duplex, one-way) — même charge admise queIRealtimeSocket.publish.open(): void— Ouvre le flux :subscriberef-compté (demande au pair de pousser).close(): void— Ferme :unsubscriberef-compté + retire les handlers branchés via ce handle.
IRealtimeSocket#
interface IRealtimeSocket<Emit extends EventsMap = DefaultEventsMap, Listen extends EventsMap = DefaultEventsMap>
Contrat de « la socket Nodefony » — voir le bloc de tête du fichier. Implémenté par NodefonySocket (front) et, à terme, par une façade serveur au-dessus du hub.
subscribe(channel: EventNames<Listen> | (string & {})): void— S’abonne à un canal (ref-compté) : émet la demande au pair UNIQUEMENT au 1ᵉʳ consommateur ; ré-émise automatiquement à chaque (re)connexion.unsubscribe(channel: EventNames<Listen> | (string & {})): void— Désabonne un consommateur (ref-compté) : coupe le flux réseau au DERNIER.on<K extends string>(channel: K, handler: K extends EventNames<Listen> ? (payload: EventPayload<Listen, K>) => void : RealtimeHandler): () => void— Branche un handler sur un canal (réception).off<K extends string>(channel: K, handler: K extends EventNames<Listen> ? (payload: EventPayload<Listen, K>) => void : RealtimeHandler): void— Retire un handler d’un canal.publish<K extends string>(channel: K, payload?: K extends EventNames<Emit> ? EventPayload<Emit, K> : object): void— Émet sur un canal (one-way, pas de réponse).channel(name: string): IRealtimeChannel— Vue par-canal — voirIRealtimeChannel.getStats(): IChannelStats[]— Snapshot des compteurs par canal (refs internes — à LIRE, pas à muter).getChannelStats(channel: string): IChannelStats— Compteurs d’un canal précis (== method JSON-RPC) ouundefined.readonly subscribedChannels: string[]— Canaux actuellement abonnés (≥ 1 consommateur).
Types (1)#
RealtimeHandler#
type RealtimeHandler = { handle(...args: unknown[]): void; }["handle"]
Handler d’un canal pub/sub — reçoit le params de la notification (ou (method, params) sur "*").