Fehler 1001: WebSocket-Verbindung unterbrochen

Ein WebSocket ist eine dauerhafte, bidirektionale Verbindung zwischen Ihrem Browser und dem BigBlueButton-Server. Anders als bei gewöhnlichen HTTP-Anfragen, bei denen der Browser jedes Mal neu anfragen muss, bleibt diese Verbindung während der gesamten Konferenzdauer offen – vergleichbar mit einem Telefongespräch, das aufgebaut bleibt, solange beide Seiten sprechen. Fehler 1001 bedeutet, dass diese Verbindung nach einem zunächst erfolgreichen Aufbau unerwartet getrennt wurde.

Wie äußert sich der Fehler?

Der Fehler tritt auf, wenn die WebSocket-Verbindung während einer laufenden Sitzung abbricht – die Verbindung war also bereits aktiv aufgebaut. Das Mikrofon und der Ton hören plötzlich auf zu funktionieren, da die Audioübertragung in BigBlueButton über eben diese WebSocket-Verbindung läuft. Häufig erscheint im Browser die Meldung „Lost connection. Please check your internet.” oder das System versucht automatisch, die Verbindung wiederherzustellen. In neueren BBB-Versionen (ab 2.7) ist ein Verbindungsabbruch besonders spürbar, da der WebSocket dort auch für sämtliche Echtzeit-Daten wie Teilnehmerlisten und Chat verwendet wird – nicht nur für Audio.

Mögliche Ursachen

Die Ursachen lassen sich in zwei Gruppen einteilen:

  • Netzwerk auf Teilnehmerseite: Instabile WLAN-Verbindung, kurzzeitige Unterbrechungen beim Mobilfunkanbieter, Wechsel zwischen WLAN und mobilen Daten während der Konferenz, Trennung durch ein VPN oder einen Proxy sowie Firewalls in Unternehmensnetzwerken, die lang bestehende TCP-Verbindungen nach einer bestimmten Leerlaufzeit automatisch kappen (erkennbar daran, dass der Fehler immer nach dem gleichen Zeitintervall auftritt, z. B. nach genau 5 Minuten).
  • Serverseitige Ursachen: Ein Neustart oder Reload des Webservers (nginx) trennt alle aktiven WebSocket-Verbindungen gleichzeitig – das betrifft dann alle Teilnehmer auf einmal. Auch ein zu kurz eingestelltes Timeout im nginx-Reverse-Proxy, ein vorgeschalteter externer Proxy (z. B. HAProxy, Cloudflare) mit niedrigen Timeout-Werten oder ein Absturz des BBB-Audio-Dienstes (bbb-webrtc-sfu) können diesen Fehler auslösen.

Lösungen

Für Teilnehmer

  1. Kurz abwarten: Der BBB-Client versucht automatisch, die Verbindung neu aufzubauen. Warten Sie 10–30 Sekunden, bevor Sie weitere Schritte unternehmen.
  2. Seite neu laden: Falls die automatische Wiederverbindung nicht klappt, laden Sie die Seite neu (F5 / Cmd+R) und treten Sie der Konferenz erneut bei.
  3. Netzwerkverbindung prüfen: Wechseln Sie bei schlechtem WLAN auf eine kabelgebundene Verbindung oder auf mobile Daten. Überprüfen Sie, ob andere Websites problemlos erreichbar sind.
  4. VPN oder Proxy deaktivieren: Schalten Sie testweise ein aktives VPN aus und versuchen Sie, die Konferenz ohne VPN beizutreten.
  5. Browser wechseln oder Cache leeren: Versuchen Sie es mit einem anderen Browser (Google Chrome oder Mozilla Firefox empfohlen) oder löschen Sie den Browser-Cache.

Für Administratoren

  1. nginx-Timeout für WebSocket-Verbindungen erhöhen: Das häufigste serverseitige Problem ist ein zu kurz gesetztes Proxy-Timeout. Öffnen Sie die BBB-nginx-Konfiguration und setzen Sie die Timeouts auf 24 Stunden:
location /ws {
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;
    proxy_read_timeout 86400s;
    proxy_send_timeout 86400s;
    proxy_buffering off;
}

Anschließend nginx neu laden (nicht neu starten, da sonst aktive Verbindungen unterbrochen werden):

sudo nginx -t && sudo nginx -s reload
  1. Allgemeine Diagnose: Prüfen Sie den Status aller BBB-Dienste und die Logs auf Hinweise:
sudo bbb-conf --check
sudo bbb-conf --status
journalctl -u bbb-webrtc-sfu.service -f
sudo tail -100 /var/log/nginx/error.log
  1. Unternehmensfirewall: Tritt der Fehler bei Teilnehmern eines bestimmten Netzwerks immer nach dem gleichen Zeitintervall auf, liegt die Ursache wahrscheinlich bei der Firewall. Erhöhen Sie das TCP-Idle-Timeout für Verbindungen auf Port 443 auf mindestens 3600 Sekunden.
  2. Doppelter Reverse-Proxy (BBB 3.0): Bei einer Konfiguration mit mehreren vorgeschalteten Proxys müssen alle WebSocket-Upgrade-Header an jeder Stelle korrekt weitergeleitet werden. Überprüfen Sie, dass proxy_set_header Upgrade und proxy_set_header Connection in der Konfiguration jedes Proxys gesetzt sind.
  3. LXD/OpenVZ-Container: In containerisierten Umgebungen kann ein fehlender SETSCHEDULER-Befehl in der systemd-Unit von FreeSWITCH zu Instabilitäten führen. Prüfen Sie den Dienststatus mit sudo systemctl status freeswitch.service und legen Sie bei Bedarf eine systemd-Override-Datei an.

Weitere Informationen

Verwandte Fehlercodes: Fehler 1002 beschreibt den Fall, dass die WebSocket-Verbindung gar nicht erst aufgebaut werden konnte (im Gegensatz zu 1001, wo sie bereits offen war). Fehler 3001 und 3002 treten auf, wenn die Verbindung auf Anwendungsebene verloren geht und der Client versucht, sich neu zu verbinden.