EMZETT.
Login

Echtzeitanwendung

Kurz: Eine Anwendung, bei der Daten ohne merkliche Verzögerung zwischen Client und Server (oder zwischen mehreren Clients) ausgetauscht werden — z. B. Chats, Live-Dashboards oder Multiplayer-Spiele.

Genauer: Klassisches HTTP ist für Echtzeitanwendungen ungeeignet, da der Client aktiv anfragen muss (Polling). Echtzeitfähigkeit wird stattdessen meist über WebSockets, Server-Sent Events oder Push-Dienste wie Pusher erreicht, bei denen der Server selbstständig Updates an verbundene Clients senden kann.

Im Detail

Der grundlegende Unterschied zu klassischen Web-Apps: Bei normalem HTTP fragt immer der Client aktiv beim Server nach (“Pull”) — der Server kann nicht von sich aus etwas an den Client schicken. Für Echtzeitfunktionen gibt es mehrere Lösungsansätze:

  • Polling: Der Client fragt in kurzen Abständen wiederholt nach neuen Daten — einfach umzusetzen, aber ineffizient (viele unnötige Anfragen) und nie wirklich “echtzeit”, nur so schnell wie das Intervall.
  • Long-Polling: Der Client fragt an, der Server lässt die Anfrage aber offen, bis es etwas Neues gibt (oder ein Timeout eintritt) — weniger Overhead als reines Polling.
  • WebSockets: Eine einmal aufgebaute, dauerhaft offene Verbindung, über die beide Seiten jederzeit Daten senden können — der heute übliche Standard für echte Echtzeitfunktionen.
  • Server-Sent Events (SSE): ähnlich wie WebSockets, aber nur in eine Richtung (Server → Client), dafür einfacher zu implementieren.

Emzett nutzt für Echtzeitfunktionen (z. B. Chat-Benachrichtigungen) den gehosteten Dienst Pusher, der WebSocket-Infrastruktur bereitstellt, ohne einen eigenen WebSocket-Server betreiben zu müssen. Wichtig bei allen Echtzeitansätzen ist niedrige Latenz — je länger die Verzögerung zwischen Ereignis und Anzeige, desto weniger fühlt sich eine Anwendung tatsächlich “echtzeitfähig” an.

Siehe auch: Pusher, Latenz