Web Socket Hilfsfunktionen
Die websocket Komponente ermöglicht Echtzeit-Aktualisierungen über WebSocket-Verbindungen. Sie nutzt die HTMX-WebSocket-Erweiterung für von HTMX verwaltete DOM-Aktualisierungen.
Standardmäßig erwartet die Komponente HTML-Fragmente, welche HTMX in das DOM einfügen kann. Nicht-HTML-Frames werden als Browser-Ereignisse zur benutzerdefinierten Verarbeitung bereitgestellt.
Funktionen
Echtzeit-Updates: Live-Inhalte über eine WebSocket-Verbindung.
HTMX-Integration: DOM-Aktualisierungen werden über den HTMX-Swap-Mechanismus abgewickelt.
Initialer Inhalt: Inhalt, welcher während des Verbindungsaufbaus angezeigt wird.
Verwendung
Die Komponente wird über das web_socket Tag eingebunden.
Parameter
config (WebSocketConfig oder als kwargs oder als Kombination aus beidem)
Dataclass für die Komponentenkonfiguration.
| Name | Typ | Beschreibung | Standardwert | Erforderlich |
|---|---|---|---|---|
| request_url | str | URL des Websocket-API Endpunkts. |
None |
True
|
| tag_id | str | Container-ID zum Ansprechen von Unterelementen anhand ihrer ID (z. B. über HTMX-Out-of-Band-Swaps). Optional; ohne diese ID funktioniert die Verbindung zwar weiterhin, der Server kann jedoch keine bestimmten Unterelemente anhand ihrer ID ansprechen. |
"" |
False
|
| initial_content | str | Initialer Inhalt. |
"" |
False
|
Barrierefreiheit
| WCAG AA | WCAG AAA | |
|---|---|---|
| Status |
|
N/A
|
WCAG AA (Grundlagen)
Das Element für den Verbindungsstatus verfügt über die Attribute role='status' und aria-live='polite', um Änderungen anzukündigen.
Statusmeldungen sind lesbarer Text, welcher den Verbindungsstatus beschreibt (Verbunden, Getrennt, Fehler, Wird verbunden).
Der Ausgabecontainer verfügt über die Attribute role='log' und aria-live='polite', um neue Nachrichten anzukündigen.
Die Angabe aria-atomic='false' stellt sicher, dass nur neue Nachrichten angesagt werden, nicht der gesamte Verlauf.
Bei Statusänderungen und Meldungen werden benutzerdefinierte Ereignisse ausgelöst, wodurch Host-Anwendungen eine barrierefreie Benutzeroberfläche implementieren können.