A felhasználók nem látják az üzeneteket valós időben, az értesítések késve érkeznek, az online chat pedig lassú? A REST nem alkalmas erre — WebSocketre vagy SSE-re van szükség. Kétirányú kommunikációs csatorna, azonnali kézbesítés, skálázhatóság Redis Pub/Sub segítségével. Ott működik, ahol a REST tehetetlen.

Mit kínálunk

Valós idejű API fejlesztése — olyan rendszerek létrehozása, ahol az adatok azonnal kézbesítésre kerülnek. Chat, értesítések, együttműködésen alapuló szerkesztés, tőzsdei árfolyamok, online játékok — bármilyen forgatókönyv, ahol az üzenetkézbesítés sebessége számít.

  • WebSocket — teljes kétirányú kommunikációs csatorna TCP felett. Minimális késleltetés, állandó kapcsolat újrafelépítés nélkül

  • Server-Sent Events (SSE) — könnyű protokoll egyirányú eseménytovábbításhoz szervertől böngésző felé. Értesítések és frissítési hírfolyamok számára

  • Skálázhatóság — WebSocket Redis Pub/Sub vagy RabbitMQ segítségével vízszintes skálázáshoz. Több ezer egyidejű kapcsolat egy csomóponton.

  • Biztonság — WSS (WebSocket Secure), hitelesítés a kapcsolat létesítésekor, bejövő üzenetek érvényesítése

WebSocket · SSE · Pub/Sub · Redis · WSS

Valós idejű használati forgatókönyvek

A valós idejű működés a feladatok széles skáláját öleli fel. Az egyszerű értesítésektől a többfelhasználós együttműködésig. A protokollt az adott forgatókönyvhöz igazítva választjuk ki.

Chat és üzenetküldők

WebSocket az azonnali üzenetkézbesítéshez. Állapotok támogatása: online, offline, gépel. Üzenetelőzmények, fájlok, reakciók. Csoportos és privát chat.

Értesítések és riasztások

SSE a könnyű eseménykézbesítéshez a böngészőbe. Push-értesítések WebSocketen keresztül. Szűrés típus, prioritás, felhasználó szerint. Garantált kézbesítés.

Valós idejű együttműködés

Operational Transform a közös szerkesztéshez. WebSocket a kurzorok szinkronizálásához. OT-algoritmusok vagy CRDT a konfliktusok feloldásához.

A valós idejű az, amikor a felhasználó gyorsabban kapja meg az üzenetet, mint ahogy eszébe jutna "miért van csend". Olyan rendszereket építünk, ahol a késleltetést ezredmásodpercekben mérik, nem másodpercekben.

WebSocket SSE Redis Pub/Sub RabbitMQ Socket.IO WSS Node.js Python Docker

A valós idejű fejlesztés teljes ciklusa

A valós idejű rendszerek nem csak WebSocket. Olyan architektúrát tervezünk, amely több ezer egyidejű kapcsolatot kezel és garantálja minden üzenet kézbesítését.

  • Kapcsolati architektúra — WebSocket vs SSE vs long-polling. A feladathoz igazítva választjuk ki a protokollt. Szobákat és csatornákat tervezünk csoportos küldéshez.

  • Skálázhatóság — Redis Pub/Sub a csomópontok közötti üzenetcseréhez. WebSocket-szerverek vízszintes skálázása megosztott állapottal.

  • Valós idejű Node.js-en — WebSocket-szerverek Node.js-en Socket.IO vagy ws segítségével. Integráció REST API-val és meglévő backenddel.

  • Kézbesítési garanciák — at-most-once, at-least-once, exactly-once. Visszaigazolás, újraküldés kapcsolat megszakadása esetén.

  • Monitoring — aktív kapcsolatok száma, sávszélesség, késleltetés. Prometheus + Grafana a valós idejű metrikákhoz.

  • REST + WebSocket hibrid — REST a kérés-válaszhoz és WebSocket a push-értesítésekhez. Optimális architektúra modern alkalmazásokhoz.


WebSocket Redis Pub/Sub segítségével — korlátok nélküli skálázás

A Redis Pub/Sub lehetővé teszi a WebSocket-szerverek vízszintes skálázását. Az egyik csomóponton elküldött üzenet azonnal kézbesítésre kerül a Redis segítségével az összes többi csomópontra. Több ezer kapcsolat — egyetlen üzenetsor.

Miért válassza a valós idejű fejlesztést nálunk

Rendeljen valós idejű API-t — kapjon olyan rendszert, ahol az adatok azonnal kézbesítésre kerülnek, a kapcsolatok megbízhatóak, és a skálázhatóság az architektúrába van építve.

Garantált kézbesítés

At-least-once és exactly-once szemantikát valósítunk meg. Az üzenet akkor is megérkezik, ha átmenetileg megszakad a kapcsolat — visszaigazolási sor és újraküldési mechanizmus.

Skálázhatóság

Redis Pub/Sub, WebSocket-szerverek vízszintes skálázása. Több ezer egyidejű kapcsolat példányonként, milliók klaszterenként.

Kapcsolatok monitorozása

Grafana-irányítópultok: aktív kapcsolatok, sávszélesség, késleltetés. Riasztások Telegramban a kapcsolat minőségének romlásakor.

Példa WebSocket-kapcsolatra:
const ws = new WebSocket("wss://api.example.com/ws");

ws.onmessage = (event) => {
  // Azonnali értesítés polling nélkül
  showNotification(JSON.parse(event.data));
};

ws.onclose = () => ws.reconnect(); // Automatikus újracsatlakozás

A valós idejű az, amikor a felhasználó nem vár. Olyan rendszereket építünk, ahol a késleltetést ezredmásodpercekben mérik, és az üzenetkézbesítés még kapcsolat megszakadása esetén is garantált.

Beszéljünk

Forduljon hozzánk bizalommal bármilyen kérdéssel vagy együttműködési lehetőséggel kapcsolatban.

Projekt megbeszélése