Typově bezpečné Bucket API
Generické BucketAPI<T> s plným TypeScript typováním. CRUD operace, dotazy, paginace a agregace — vše s typovou kontrolou při kompilaci.
Typově bezpečné klientské SDK
Plně typovaný WebSocket klient pro noex-server s automatickým reconnectem, obnovou subskripcí, reaktivními store dotazy, proxy pro rules engine a nulovými runtime závislostmi.
Vše potřebné pro typově bezpečnou real-time komunikaci s noex-serverem
Generické BucketAPI<T> s plným TypeScript typováním. CRUD operace, dotazy, paginace a agregace — vše s typovou kontrolou při kompilaci.
Exponenciální backoff s jitterem, konfigurovatelné parametry (maxRetries, delays, multiplier). Bezešvé znovupřipojení bez manuálního zásahu.
Po reconnectu jsou automaticky obnoveny všechny store i rules subskripce a doručena čerstvá data. Žádná manuální resubskripce není potřeba.
Real-time push notifikace pro store dotazy a rules události. Iniciální data doručena ihned po subskripci, poté živé aktualizace při každé změně.
ACID multi-bucket transakce přes WebSocket. Atomické operace s optimistickým zamykáním, čtení vlastních zápisů a automatický rollback při konfliktu.
Emise událostí, správa faktů (set/get/delete/query) a subskripce pattern-based proudů událostí — vše přes stejné WebSocket spojení.
Login, logout a správa sessions přes token-based auth. Auto-login při připojení i reconnectu, pokud je auth token poskytnut.
Žádné runtime závislosti. Funguje nativně v prohlížeči a v Node.js s balíčkem ws. Minimální velikost bundlu.
Čistá separace zodpovědností se čtyřmi odlišnými vrstvami
StoreAPI, RulesAPI, AuthAPI
Registr, doručování push, resubskripce
RequestManager + PushRouter
WebSocket, heartbeat, reconnect
Lifecycle události: connected, disconnected, reconnecting, reconnected, error, welcome
Request pipeline: API volání → RequestManager (korelace ID + timeout) → Transport (WebSocket send) → Směrování odpovědi
Reálné ukázky kódu: připojení, CRUD, subskripce, transakce a rules
import { NoexClient } from '@hamicek/noex-client';
const client = new NoexClient('ws://localhost:8080', {
auth: { token: 'my-secret-token' },
reconnect: {
maxRetries: Infinity,
initialDelayMs: 1_000,
maxDelayMs: 30_000,
backoffMultiplier: 2,
jitterMs: 500,
},
requestTimeoutMs: 10_000,
connectTimeoutMs: 5_000,
heartbeat: true,
});
const info = await client.connect();
console.log(`Connected to v${info.version}`);
client.on('reconnecting', (attempt) => {
console.log(`Reconnecting... attempt ${attempt}`);
});
client.on('reconnected', () => {
console.log('Connection restored!');
});
// Graceful disconnect
await client.disconnect();Automatické znovupřipojení s exponenciálním backoffem, jitterem a plnou obnovou subskripcí
Maximální počet pokusů o reconnect
Základní prodleva před prvním opakováním
Maximální prodleva
Exponenciální násobitel
Náhodný jitter přidaný k prodlevě
Vypnutí reconnectu: reconnect: false
noex-client vs populární real-time klientská SDK
| Feature | noex-client | Socket.IO Client | Supabase JS | Firebase JS | Ably Realtime |
|---|---|---|---|---|---|
| Typově bezpečné generické API | BucketAPI<T> | — | Generované typy | Netypované | — |
| Auto obnova subskripcí | ✓ | — | — | ✓ | ✓ |
| ACID transakce | Multi-bucket přes WS | — | Postgres transakce | — | — |
| Rules Engine Proxy | ✓ | — | — | — | — |
| Reconnect s backoffem | ✓ | ✓ | ✓ | ✓ | ✓ |
| Auto-login při reconnectu | ✓ | — | — | ✓ | — |
| Reaktivní query subskripce | Convex-style push | Manuální rooms | Postgres změny | Realtime sync | Pub/sub |
| Správa faktů | Set/get/delete/query | — | — | — | — |
| Runtime závislosti | Nulové | engine.io-client + | Mnoho | Mnoho | Mnoho |
| Prohlížeč + Node.js | ✓ | ✓ | ✓ | ✓ | ✓ |
| Stav | Aktivní | Aktivní | Aktivní | Aktivní | Aktivní |
BucketAPI<T> poskytuje typovou kontrolu při kompilaci na každé CRUD operaci, dotazu a agregaci. Žádné runtime neshody typů.
Při reconnectu jsou automaticky obnoveny všechny aktivní store i rules subskripce. Čerstvá data jsou doručena bez jakékoli manuální logiky resubskripce.
Jediné klientské SDK s vestavěným přístupem k rules enginu. Emitujte události, spravujte fakta a odebírejte pattern-matched rule eventy přes stejné spojení.
Multi-bucket atomické transakce s optimistickým zamykáním, odeslané jako jediná zpráva. Čtení vlastních zápisů a automatický rollback při konfliktu.
Žádné tranzitivní závislosti k auditu nebo aktualizaci. Funguje nativně v prohlížečích a v Node.js jen s balíčkem ws jako peer dependency.
Přidejte noex-client do svého projektu během vteřin
$ npm install @hamicek/noex-client Vyžaduje běžící noex-server. V Node.js nainstalujte ws jako peer dependency.
Líbí se vám noex? Pomozte nám pokračovat ve vývoji