Définir le proxy de ClientWebSocket avant de se connecter
Configurez un proxy .NET WebSocket et ses informations d'identification avant l'établissement de la connexion, en les tenant séparées de celles de la destination.
Configurez les options de ClientWebSocket avant d'appeler ConnectAsync. Démarrer la connexion d'abord puis affecter le proxy ensuite est trop tard pour cette poignée de main.
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);
Les adresses et les variables de compte sont illustratives. Les espaces de noms requis incluent System.Net, System.Net.WebSockets et System.Threading. Utilisez le type d'informations d'identification et le mécanisme d'authentification pris en charge par l'environnement d'exécution, la plateforme et le service proxy de votre déploiement.
Les informations d'identification de WebProxy appartiennent au proxy. ClientWebSocketOptions possède aussi une propriété Credentials distincte pour l'authentification du serveur WebSocket. Affecter l'une ne satisfait pas automatiquement l'autre partie.
Pour une connexion WebSocket sécurisée, un tunnel proxy refusé peut empêcher la poignée de main WebSocket de la destination de commencer du tout. Séparez les preuves de connexion et d'authentification du proxy de la réponse HTTP upgrade de la destination et du trafic WebSocket ultérieur.
Une connexion réussie n'est que le début de la session. Gardez explicites l'annulation de réception/envoi et le nettoyage des ressources pendant toute la durée de vie de l'application ; le délai de configuration de cet exemple n'est pas une politique complète pour chaque message suivant.