Aseta ClientWebSocketin välityspalvelin ennen yhdistämistä
Määritä .NET WebSocket -välityspalvelin ja sen tunnistetiedot ennen yhteyden muodostamista ja pidä ne erillään kohteen tunnistetiedoista.
Määritä ClientWebSocketin asetukset ennen ConnectAsync-kutsua. Yhteyden aloittaminen ensin ja välityspalvelimen määrittäminen vasta sen jälkeen on liian myöhäistä tälle kättelylle.
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);
Osoitteet ja tilimuuttujat ovat havainnollistavia. Tarvittavat nimiavaruudet sisältävät System.Net, System.Net.WebSockets ja System.Threading. Käytä tunnistetietotyyppiä ja todennusmenetelmää, joita käyttöympäristö, alusta ja välityspalvelu tukevat käyttöönotossasi.
WebProxyn tunnistetiedot kuuluvat välityspalvelimelle. ClientWebSocketOptionsissa on myös erillinen Credentials-ominaisuus WebSocket-palvelimen todennusta varten. Toisen määrittäminen ei automaattisesti tyydytä toista osapuolta.
Suojatussa WebSocket-yhteydessä hylätty välityspalvelintunneli voi estää kohteen WebSocket-kättelyn alkamisen kokonaan. Erota välityspalvelinyhteyden ja todennuksen todisteet kohteen HTTP upgrade -vastauksesta ja myöhemmästä WebSocket-liikenteestä.
Onnistunut yhteys on vain istunnon alku. Pidä vastaanoton/lähetyksen peruutus ja resurssien siivous selkeinä sovelluksen koko elinkaaren ajan; tämän luonnoksen asetusaikaraja ei ole täydellinen käytäntö jokaista myöhempää viestiä varten.