---
title: "Référence d'API — nodefony/client — sse"
source: docs/api/core/client-sse.md
url: https://nodefony.github.io/nodefony-core/docs/api/core/client-sse/
---


[Documentation](../../../) › [Référence d'API](../../) › [`nodefony`](../) › client-sse

> Générée depuis les déclarations de types publiées de `nodefony` **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/client`

`import { … } from "nodefony/client"` — 12 symboles.

### Classes (3)

#### `NodefonySse`

```ts
class NodefonySse extends EventTarget
```

Client d'un flux `text/event-stream`, compatible `EventSource`, sur `fetch`.

- `static readonly CONNECTING = 0`
- `static readonly OPEN = 1`
- `static readonly CLOSED = 2`
- `readonly CONNECTING = 0`
- `readonly OPEN = 1`
- `readonly CLOSED = 2`
- `readonly url: string` — L'adresse du flux, résolue.
- `readonly withCredentials: boolean` — Les cookies partent-ils vers une autre origine ?
- `onopen: (event: Event) => void | null` — Appelé à l'ouverture de chaque connexion.
- `onmessage: (event: MessageEvent<string>) => void | null` — Appelé pour chaque événement de type `message`.
- `onerror: (event: Event) => void | null` — Appelé à chaque coupure, avant la reconnexion ou l'abandon.
- `constructor(url: string | URL, options?: NodefonySseOptions)`
- `get readyState(): number` — État de la connexion : 0 `CONNECTING`, 1 `OPEN`, 2 `CLOSED`.
- `get lastEventId(): string` — Le dernier identifiant reçu — celui que la reconnexion renverra.
- `close(): void` — Ferme la connexion et annule toute reconnexion.

#### `SseLimitError`

```ts
class SseLimitError extends RangeError
```

Un événement — ou une ligne — dépasse la taille admise.

- `constructor(limit: number)`

#### `SseParser`

```ts
class SseParser
```

Lit un flux `text/event-stream` déjà décodé en texte, morceau par morceau.

- `constructor(handlers: ISseParserHandlers, lastEventId?: string, maxEventSize?: number)`
- `get lastEventId(): string` — L'identifiant courant du flux — celui qu'une reconnexion renverra.
- `push(chunk: string): void` — Lit un morceau du flux.
- `end(): void` — Fin du flux : la ligne et le bloc inachevés sont jetés — un bloc que n'a pas clos une ligne vide n'est jamais rendu (§9.2.6).

### Fonctions (3)

#### `initialSseSnapshot`

```ts
function initialSseSnapshot(url: string | URL | null): SseSnapshot
```

L'état d'un flux AVANT que `observeSse` ne l'ouvre — la valeur initiale qu'une liaison affiche au premier rendu : `CONNECTING` pour une adresse, `CLOSED` sans erreur pour `null`.

#### `observeSse`

```ts
function observeSse(url: string | URL | null, emit: Emit<SseSnapshot>, options?: ObserveSseOptions): Dispose
```

Observe un flux `text/event-stream` : l'ouvre, rend son état à `emit` à chaque transition et à chaque événement, et le ferme à la libération.

#### `sseRebindKey`

```ts
function sseRebindKey(url: string | URL | null, options?: ObserveSseOptions): string
```

Clé de **ré-ouverture** d'un flux : l'adresse et les types écoutés, et rien d'autre. Le rappel `onEvent` et les objets d'options changent d'identité à chaque rendu dans la plupart des frameworks ; rouvrir à chaque rendu couperait le flux en boucle. Les autres réglages (en-têtes, corps) sont lus à l'ouverture.

### Constantes (1)

#### `SSE_MAX_EVENT_SIZE`

```ts
const SSE_MAX_EVENT_SIZE: number
```

Taille maximale d'un événement par défaut, en unités UTF-16 : 4 Mi.

### Interfaces (5)

#### `ISseEvent`

```ts
interface ISseEvent
```

Un événement reçu, une fois sa ligne vide atteinte (WHATWG §9.2.6).

- `readonly type: string` — Le champ `event`, ou `"message"` quand le bloc n'en portait pas.
- `readonly data: string` — Les champs `data` du bloc, joints par un saut de ligne.
- `readonly lastEventId: string` — L'identifiant courant du flux, après ce bloc — `""` s'il n'y en a jamais eu.

#### `ISseParserHandlers`

```ts
interface ISseParserHandlers
```

Ce que l'analyseur rend à mesure qu'il lit.

- `onEvent(event: ISseEvent): void` — Un bloc complet, porteur de données.
- `onRetry?(ms: number): void` — Le serveur demande un autre délai de reconnexion (champ `retry`, en ms).

#### `NodefonySseOptions`

```ts
interface NodefonySseOptions
```

Options de `NodefonySse`.

- `method?: string` — Méthode HTTP.
- `headers?: Record<string, string>` — En-têtes ajoutés à chaque connexion (un `Authorization`, par exemple).
- `body?: string` — Corps de la requête — renvoyé à chaque reconnexion.
- `withCredentials?: boolean` — Envoyer les cookies vers une autre origine (`credentials: "include"`).
- `retry?: number` — Délai de reconnexion initial (ms), jusqu'à ce que le serveur en impose un par `retry:`.
- `lastEventId?: string` — Identifiant à reprendre dès la première connexion (en-tête `Last-Event-ID`).
- `maxEventSize?: number` — Taille maximale d'un événement (unités UTF-16).
- `connectTimeout?: number` — Délai d'ouverture (ms) : une réponse qui n'arrive pas dans ce délai est abandonnée, et la reconnexion prend le relais.
- `fetch?: typeof fetch` — `fetch` à employer — injectable pour un certificat, un agent ou un test.

#### `ObserveSseOptions`

```ts
interface ObserveSseOptions extends NodefonySseOptions
```

Réglages de `observeSse` : ceux de `NodefonySse`, plus deux.

- `events?: readonly string[]` — Types d'événements écoutés — le champ `event:` du serveur.
- `onEvent?: (event: ISseEvent) => void` — Appelé pour CHAQUE événement reçu, avant la mise à jour de l'état.

#### `SseSnapshot`

```ts
interface SseSnapshot
```

L'état d'un flux observé — ce qu'une vue affiche.

- `readonly readyState: number` — 0 `CONNECTING`, 1 `OPEN`, 2 `CLOSED` — les constantes de `NodefonySse`.
- `readonly lastEvent: ISseEvent | null` — Le dernier événement reçu d'un des types écoutés, `null` tant qu'aucun.
- `readonly error: boolean` — La dernière transition était-elle une coupure ?

---

[← Toutes les références d'API](../../)
