Agordu la opciojn de ClientWebSocket antaŭ ol voki ConnectAsync. Unue komenci la konekton kaj poste atribui la prokurilon estas tro malfrue por tiu manpremo.

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);

La adresoj kaj kontaj variantoj estas ilustraj. La bezonataj nomspacoj inkluzivas System.Net, System.Net.WebSockets kaj System.Threading. Uzu la identigilan tipon kaj aŭtentigan mekanismon subtenatajn de la rulmedio, platformo kaj prokurila servo en via deplojo.

La identigiloj de WebProxy apartenas al la prokurilo. ClientWebSocketOptions ankaŭ havas apartan econ Credentials por aŭtentigo de la WebSocket-servilo. Atribui unu ne aŭtomate kontentigas la alian parton.

Por sekura WebSocket-konekto, rifuzita prokurila tunelo povas malhelpi, ke la WebSocket-manpremo de la celo eĉ komenciĝu. Apartigu pruvojn pri prokurila konekto kaj aŭtentigo de la HTTP-upgrade-respondo de la celo kaj de posta WebSocket-trafiko.

Sukcesa konekto estas nur la komenco de la sesio. Tenu eksplicitaj la nuligon de ricevo/sendo kaj la purigadon de rimedoj dum la tuta vivo de la aplikaĵo; la limtempo de agordo en ĉi tiu skizo ne estas kompleta politiko por ĉiu sekva mesaĝo.

Rilataj artikoloj