WebSocket Server in Streamer.bot¶
SB hat einen eingebauten WebSocket-Server. Browser, externe Apps, Custom-Overlays können sich verbinden und bidirektional kommunizieren.
Doku-Stand: offizielle WS-Server-Doku ist teilweise unvollständig. Diese Anleitung basiert auf SB-UI + Community-Praxis.
Wo aktivieren¶
- Settings → Servers/Clients → WebSocket Server (in SB UI)
- Enable: ✅
- Address:
0.0.0.0(alle Interfaces) oder127.0.0.1(nur lokal) - Port:
8080(Default — gleicher wie der Web Server, beides verfügbar auf gleichem Port) - Password: optional (Bearer-Token-Header oder URL-Param)
Endpoint-URLs¶
Streamer.bot exposed mehrere Endpoints am selben Port:
| URL | Was |
|---|---|
http://<sb-ip>:8080/ |
HTTP Web Server (REST-Endpoints, Webhook) |
ws://<sb-ip>:8080/ |
WebSocket Server (für Browser/Apps) |
In JavaScript verbindest du dich z.B. mit:
const ws = new WebSocket('ws://localhost:8080/');
ws.onopen = () => console.log('Connected to Streamer.bot');
ws.onmessage = (event) => console.log('Got from SB:', event.data);
ws.send(JSON.stringify({type: 'hello'}));
Welche Kommunikation¶
Browser → SB: - Custom Server Trigger Message wird in SB ausgelöst - Action kann mit Sub-Actions reagieren
SB → Browser:
- Action sendet via Sub-Action (siehe unten) an verbundene Clients
- Browser empfängt im ws.onmessage
Sub-Action: Send to Connected Clients¶
Pfad: Streamer.bot → WebSocket → Broadcast (oder ähnlich, je nach Version)
(Genauer Sub-Action-Pfad variiert. In aktuellen Versionen meist via Send Remote Signal / Send Custom Server Message.)
Use-Cases¶
| Use-Case | MD |
|---|---|
| Custom Server Trigger (Browser sendet an SB) | custom-server-trigger.md |
| Browser-Overlay mit Live-Daten von SB | browser-overlay.md |
| SB als Client zu externem WS-Server | websocket-client.md |
Authentifizierung¶
Wenn Password gesetzt:
Oder via Header (im Browser limitiert, im Node.js voll).
Multiple Servers parallel¶
Streamer.bot unterstützt mehrere Custom-Server gleichzeitig. Im UI unter Settings mehrere Endpoints konfigurierbar.
Use-Case: Server 1 = Browser-Overlays, Server 2 = Mobile-App.
Security¶
- WICHTIG: WS-Server ist nicht für Internet-Exposure gedacht. Nur LAN
- Internet-Tunnel? Cloudflare-Tunnel davor oder VPN, plus Password
- HTTPS/WSS: Streamer.bot hat keinen eingebauten TLS-Termination. Reverse-Proxy davor (nginx + Let's Encrypt) wenn du WSS willst
Häufige Fallen¶
- Browser-CORS — wenn dein Browser-Overlay von einer https-Page kommt aber zu http://localhost:8080 connectet → Mixed-Content-Block. Lösung: Overlay als file://-Source in OBS laden (kein CORS), oder beides HTTPS
- Port-Konflikt — wenn anderes Tool 8080 belegt, anderen Port wählen
- Verbindung bricht — Auto-Reconnect im Client-Code einbauen
- Tiefe SSL-Setups scheitern oft an Stream-Setup-Komplexität — Lokal bleiben empfohlen
Quellen¶
- WebSocket Custom Server Trigger: https://docs.streamer.bot/api/triggers/core/websocket/custom-server
- WebSocket Client Trigger: https://docs.streamer.bot/api/triggers/core/websocket/client
- Streamer.bot UI Settings → Servers/Clients