Definiu el proxy de ClientWebSocket abans de connectar
Configureu un proxy .NET WebSocket i les seves credencials abans de l'establiment de la connexió, mantenint-les separades de les credencials de destinació.
Configureu les opcions de ClientWebSocket abans de cridar ConnectAsync. Iniciar primer la connexió i assignar el proxy després és massa tard per a aquest handshake.
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 adreces i les variables de compte són il·lustratives. Els espais de noms necessaris inclouen System.Net, System.Net.WebSockets i System.Threading. Utilitzeu el tipus de credencial i el mecanisme d'autenticació que admeten el runtime, la plataforma i el servei de proxy del vostre desplegament.
Les credencials de WebProxy pertanyen al proxy. ClientWebSocketOptions també té una propietat Credentials separada per a l'autenticació del servidor WebSocket. Assignar-ne una no satisfà automàticament l'altra part.
En una connexió WebSocket segura, un túnel de proxy rebutjat pot impedir que l'handshake WebSocket de la destinació comenci. Separeu les evidències de connexió i autenticació del proxy de la resposta HTTP d'actualització de la destinació i del trànsit WebSocket posterior.
Una connexió correcta només és l'inici de la sessió. Mantingueu explícits la cancel·lació de recepció/enviament i la neteja de recursos durant tota la vida de l'aplicació; el termini de configuració d'aquest esbós no és una política completa per a cada missatge posterior.