Prezentare generală Realtime
Prezentare generală Realtime
@e-bon/realtime este clientul WebSocket oficial pentru canalul de evenimente e-bon (wss://api.e-bon.ro/ws). Este pachetul pe care îl folosesc atât Portalul e-bon, cât și aplicația E-BON pentru Android, și este modul recomandat de a primi actualizări live din orice runtime TypeScript sau JavaScript modern (Node 22+, Deno, Bun, browsere moderne).
Este intenționat un pachet separat de @e-bon/sdk. SDK-ul este doar REST; tot ce e live — bonuri tipărite, comenzi finalizate, dispozitive ieșite offline, alerte care se schimbă — curge prin canalul realtime. Cele două pachete partajează @e-bon/types, dar nu au altă cuplare, deci poți instala doar cel de care ai nevoie.
Ce îți oferă @e-bon/realtime peste un WebSocket brut:
- Un
RealtimeClienttipat cu listenerion/off/once, o metodăclose()și control prinsuspend()/resume(). - Reconectare automată cu backoff exponențial (1s → 30s, plafonat).
- Validare zod strictă pe cadrele de protocol — mesajele incorecte sunt aruncate cu un
console.warnși nu ajung niciodată la listenerii tăi. - Un hook
CursorStorepentru ca livrarea viitoare at-least-once (E-1b / E-10) să poată conecta un strat de persistență fără să schimbi codul tău. - Opt tipuri de payload de evenimente partenere, toate derivate din scheme zod exportate de
@e-bon/realtime.
Clientul folosește WebSocket-ul nativ al runtime-ului — nu este inclus niciun polyfill. Pe Node necesită Node 22 sau mai nou.
Când să-l folosești
| Vrei să… | Folosește |
|---|---|
Asculți receipt.created / command.completed | @e-bon/realtime — Evenimente |
| Reacționezi la un dispozitiv care iese offline sau hârtie pe terminare | @e-bon/realtime — device.status / device.alert |
| Trimiți comenzi fiscale, aduci bonuri, administrezi chei | @e-bon/sdk — Prezentare generală SDK |
| Primești apeluri HTTP de ieșire (fără conexiune TCP lungă) | Webhook-uri — API › Webhook-uri |
Dacă nu poți menține o conexiune cu durată lungă (joburi pornite din cron, funcții edge cu ferestre scurte de execuție), preferă webhook-urile în locul clientului realtime.
Unde mergi mai departe
- Pornire rapidă — instalează
@e-bon/realtime, instanțiazăRealtimeClientși înregistrează primul listener. - Evenimente — cele opt payload-uri de evenimente partenere și tipurile
EventMap/EventName. - Reconectare și ciclu de viață — programul de backoff,
close,suspend/resumeși hook-ulCursorStore. - Scheme — cadrele server→dispozitiv și dispozitiv→server, plus granița
clientMessageId. - Prezentare generală SDK — pachetul companion REST.