Zum Inhalt

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

  1. Settings → Servers/Clients → WebSocket Server (in SB UI)
  2. Enable: ✅
  3. Address: 0.0.0.0 (alle Interfaces) oder 127.0.0.1 (nur lokal)
  4. Port: 8080 (Default — gleicher wie der Web Server, beides verfügbar auf gleichem Port)
  5. 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:

const ws = new WebSocket('ws://localhost:8080/?password=mySecret');

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