Konfigurasikan pilihan ClientWebSocket sebelum memanggil ConnectAsync. Memulakan sambungan dahulu dan menetapkan proksi selepas itu terlalu lewat untuk jabat tangan itu.

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

Alamat dan pemboleh ubah akaun adalah ilustrasi. Ruang nama yang diperlukan termasuk System.Net, System.Net.WebSockets dan System.Threading. Gunakan jenis kelayakan dan mekanisme pengesahan yang disokong oleh runtime, platform dan perkhidmatan proksi dalam penggunaan anda.

Kelayakan WebProxy milik proksi. ClientWebSocketOptions juga mempunyai sifat Credentials berasingan untuk pengesahan pelayan WebSocket. Menetapkan satu tidak memenuhi pihak yang lain secara automatik.

Untuk sambungan WebSocket yang selamat, terowong proksi yang ditolak boleh menghalang jabat tangan WebSocket destinasi daripada bermula sama sekali. Asingkan bukti sambungan dan pengesahan proksi daripada respons HTTP upgrade destinasi dan trafik WebSocket seterusnya.

Sambungan yang berjaya hanyalah permulaan sesi. Kekalkan pembatalan terima/hantar dan pembersihan sumber secara eksplisit sepanjang hayat aplikasi; had masa penyediaan dalam lakaran ini bukan dasar lengkap untuk setiap mesej berikutnya.

Artikel berkaitan