Nustatykite ClientWebSocket tarpinį serverį prieš prisijungdami
Sukonfigūruokite .NET WebSocket tarpinį serverį ir jo kredencialus prieš užmezgant ryšį, laikydami juos atskirai nuo paskirties kredencialų.
Sukonfigūruokite ClientWebSocket parinktis prieš kviesdami ConnectAsync. Pirmiau pradėti ryšį, o tada priskirti tarpinį serverį yra per vėlu tam rankos paspaudimui.
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);
Adresai ir paskyros kintamieji yra iliustraciniai. Reikalingos vardų erdvės apima System.Net, System.Net.WebSockets ir System.Threading. Naudokite kredencialų tipą ir autentifikavimo mechanizmą, kuriuos palaiko runtime, platforma ir tarpinio serverio paslauga jūsų diegime.
WebProxy kredencialai priklauso tarpiniam serveriui. ClientWebSocketOptions taip pat turi atskirą Credentials savybę WebSocket serverio autentifikavimui. Vieno priskyrimas automatiškai netenkina kitos šalies.
Saugiam WebSocket ryšiui atmestas tarpinio serverio tunelis gali neleisti paskirties WebSocket rankos paspaudimui apskritai prasidėti. Atskirkite tarpinio serverio ryšio ir autentifikavimo įrodymus nuo paskirties HTTP upgrade atsakymo ir vėlesnio WebSocket srauto.
Sėkmingas ryšys yra tik sesijos pradžia. Išlaikykite aiškų gavimo/siuntimo atšaukimą ir išteklių valymą per visą programos gyvavimo laiką; šiame eskize nurodytas sąrankos terminas nėra išsami politika kiekvienam tolesniam pranešimui.