กำหนดค่าตัวเลือกของ ClientWebSocket ก่อนเรียก ConnectAsync การเริ่มการเชื่อมต่อก่อนแล้วค่อยกำหนดพร็อกซีภายหลังนั้นสายเกินไปสำหรับแฮนด์เชกนั้น

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

ที่อยู่และตัวแปรบัญชีเป็นเพียงตัวอย่าง เนมสเปซที่จำเป็นได้แก่ System.Net, System.Net.WebSockets และ System.Threading ใช้ชนิดข้อมูลรับรองและกลไกการรับรองความถูกต้องที่รันไทม์ แพลตฟอร์ม และบริการพร็อกซีรองรับในการติดตั้งของคุณ

ข้อมูลรับรองของ WebProxy เป็นของพร็อกซี ClientWebSocketOptions ยังมีพร็อพเพอร์ตี Credentials แยกต่างหากสำหรับการรับรองความถูกต้องของเซิร์ฟเวอร์ WebSocket การกำหนดอย่างหนึ่งไม่ได้ทำให้อีกฝ่ายพอใจโดยอัตโนมัติ

สำหรับการเชื่อมต่อ WebSocket ที่ปลอดภัย อุโมงค์พร็อกซีที่ถูกปฏิเสธอาจขัดขวางไม่ให้แฮนด์เชก WebSocket ของปลายทางเริ่มต้นได้เลย แยกหลักฐานการเชื่อมต่อและการรับรองความถูกต้องของพร็อกซีออกจากคำตอบ HTTP upgrade ของปลายทางและทราฟฟิก WebSocket ภายหลัง

การเชื่อมต่อที่สำเร็จเป็นเพียงจุดเริ่มต้นของเซสชัน รักษาการยกเลิกการรับ/ส่งและการล้างทรัพยากรให้ชัดเจนตลอดอายุการใช้งานของแอปพลิเคชัน กำหนดเวลาตั้งค่าในแบบร่างนี้ไม่ใช่นโยบายที่สมบูรณ์สำหรับทุกข้อความถัดไป

บทความที่เกี่ยวข้อง