WebSocket stellt einen bidirektionalen, dauerhaft offenen Kanal zwischen Browser und Server her. Live-Datenpanels, Chat-Anwendungen und Echtzeitbenachrichtigungen nutzen diese Technologie. Ob sie über einen Proxy funktioniert, hängt vom Typ und der Konfiguration des Proxys ab.
Wie startet WebSocket?
WebSocket ist kein eigenständiges Protokoll; es beginnt mit einer HTTP-Anfrage und Upgrade wechselt über diesen Mechanismus das Protokoll:
Nach der 101-Antwort ist die Verbindung kein HTTP mehr und es beginnen WebSocket-Frames zu fließen. Deshalb muss jede zwischengeschaltete Schicht das Upgrade verstehen.
Verhalten je nach Proxy-Typ
Die sicherste Kombination wss:// + CONNECT-Tunnel. Da der Traffic verschlüsselt ist, kann der Proxy nicht in den Inhalt eingreifen und das Upgrade nicht stören.
Wenn Sie eine Anwendung mit WebSocket über einen Proxy betreiben möchten, sollten Sie wss:// (verschlüsselt) bevorzugen. Da der Proxy-Tunnel lediglich Bytes transportiert, kann er in den Upgrade-Vorgang überhaupt nicht eingreifen, und Kompatibilitätsprobleme entfallen.
Warum stören manche Proxys die Verbindung?
Bei reinem ws:// -Traffic liest der Proxy die Anfrage mit. Alte oder streng konfigurierte Proxys können dabei folgende Fehler machen:
Der letzte Punkt wird häufig übersehen: Wenn Sie einen Rotating Proxy nutzen, bricht die WebSocket-Verbindung beim IP-Wechsel ab. In diesem Szenario ist eine statische IP erforderlich.
Abbrüche verhindern: Ping/Pong
Proxys und zwischengeschaltete Router schließen Verbindungen, über die lange keine Daten fließen. Das WebSocket-Protokoll definiert für diesen Fall Ping/Pong-Frames. Die meisten Bibliotheken erledigen das automatisch, aber möglicherweise müssen Sie das Intervall anpassen:
Halten Sie das Ping-Intervall kürzer als das Idle-Timeout des Proxys. 20–25 Sekunden sind für die meisten Konfigurationen ein sicherer Wert.
WebSocket mit SOCKS5
Da SOCKS5 die Anwendungsdaten überhaupt nicht auswertet, transportiert es WebSocket ganz natürlich. Upgrade-Handshake, Protokollwechsel und Frame-Fluss — für SOCKS5 ist all das lediglich ein Byte-Strom. Das macht SOCKS5 in WebSocket-Szenarien zur sichersten Option.
Zum allgemeinen Verhalten von SOCKS5 Wie SOCKS5 funktioniert .
Langlebige Verbindungen und IP-Stabilität
WebSocket ist naturgemäß langlebig; die Rotation hingegen versucht, die IP zu wechseln. Beides steht im Konflikt. In diesem Szenario ist eine statische IP oder eine sehr lange Sticky-Dauer erforderlich.
Strategie für den Wiederaufbau der Verbindung
Wenn Sie WebSocket über einen Proxy nutzen, sollten Sie Abbrüche nicht als Ausnahme, sondern als Normalfall einplanen:
- Exponentielles Backoff: Ansteigende Wartezeiten von 1, 2, 4, 8 Sekunden.
- Jitter hinzufuegen: Verhindert, dass viele gleichzeitig getrennte Clients auch gleichzeitig zurückkehren.
- Statussynchronisierung: Fordern Sie nach dem erneuten Verbinden die verpassten Nachrichten an.
- Maximale Anzahl an Versuchen: Geraten Sie nicht in eine Endlosschleife; informieren Sie den Nutzer.
- Überwachen Sie die Verbindungsqualität: Nimmt die Häufigkeit der Abbrüche zu, überprüfen Sie die Proxy-Konfiguration.
Zusammenfassung
WebSocket beginnt mit dem HTTP-Upgrade-Mechanismus, weshalb die zwischengeschalteten Schichten den Protokollwechsel verstehen müssen. wss:// (verschlüsselt) zu verwenden und einen CONNECT-Tunnel oder SOCKS5 zu bevorzugen, beseitigt Kompatibilitätsprobleme weitgehend. Langlebige Verbindungen kollidieren mit Rotating Proxys; in diesem Szenario ist eine statische IP erforderlich. Halten Sie das Ping/Pong-Intervall kürzer als das Proxy-Timeout und planen Sie eine robuste Reconnect-Strategie ein. Für Optionen mit statischer IP ISP Proxy an.