ClientWebSocket-Proxy vor dem Verbinden festlegen
Konfigurieren Sie einen .NET WebSocket-Proxy und seine Anmeldeinformationen vor dem Verbindungsaufbau und halten Sie sie von den Ziel-Anmeldeinformationen getrennt.
Konfigurieren Sie die Optionen von ClientWebSocket, bevor Sie ConnectAsync aufrufen. Erst die Verbindung zu starten und den Proxy danach zuzuweisen, ist für diesen Handshake zu spät.
using var socket = new ClientWebSocket();
socket.Options.Proxy = new WebProxy("http://203.0.113.10:8080")
{
Credentials = new NetworkCredential(proxyUser, proxyPassword)
};
using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(20));
await socket.ConnectAsync(new Uri("wss://example.com/socket"),
deadline.Token);
Die Adressen und Kontovariablen sind beispielhaft. Die erforderlichen Namespaces umfassen System.Net, System.Net.WebSockets und System.Threading. Verwenden Sie den Anmeldeinformationstyp und den Authentifizierungsmechanismus, die Laufzeit, Plattform und Proxydienst in Ihrer Bereitstellung unterstützen.
Die WebProxy-Anmeldeinformationen gehören zum Proxy. ClientWebSocketOptions hat außerdem eine separate Credentials-Eigenschaft für die Authentifizierung des WebSocket-Servers. Die Zuweisung der einen erfüllt nicht automatisch die andere Seite.
Bei einer sicheren WebSocket-Verbindung kann ein abgelehnter Proxy-Tunnel verhindern, dass der WebSocket-Handshake des Ziels überhaupt beginnt. Trennen Sie Nachweise für Proxy-Verbindung und -Authentifizierung von der HTTP-Upgrade-Antwort des Ziels und dem späteren WebSocket-Verkehr.
Eine erfolgreiche Verbindung ist nur der Beginn der Sitzung. Halten Sie Abbruch von Empfang und Senden sowie Ressourcenbereinigung über die Lebensdauer der Anwendung explizit; die Einrichtungsfrist in diesem Entwurf ist keine vollständige Richtlinie für jede weitere Nachricht.