Bağlanmadan önce ClientWebSocket proxy'sini ayarlayın
.NET WebSocket proxy'sini ve kimlik bilgilerini bağlantı kurulmadan önce yapılandırın ve hedefin kimlik bilgilerinden ayrı tutun.
ConnectAsync'i çağırmadan önce ClientWebSocket seçeneklerini yapılandırın. Önce bağlantıyı başlatıp proxy'yi sonradan atamak o el sıkışması için çok geç.
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);
Adresler ve hesap değişkenleri örnektir. Gerekli ad alanları System.Net, System.Net.WebSockets ve System.Threading'i içerir. Dağıtımınızda çalışma zamanı, platform ve proxy hizmetinin desteklediği kimlik bilgisi türünü ve kimlik doğrulama mekanizmasını kullanın.
WebProxy kimlik bilgileri proxy'ye aittir. ClientWebSocketOptions ayrıca WebSocket sunucusunun kimlik doğrulaması için ayrı bir Credentials özelliğine sahiptir. Birini atamak diğer tarafı otomatik olarak tatmin etmez.
Güvenli bir WebSocket bağlantısında, reddedilen bir proxy tüneli hedefin WebSocket el sıkışmasının başlamasını tamamen engelleyebilir. Proxy bağlantısı ve kimlik doğrulama kanıtlarını hedefin HTTP upgrade yanıtından ve sonraki WebSocket trafiğinden ayırın.
Başarılı bir bağlantı oturumun yalnızca başlangıcıdır. Alma/gönderme iptalini ve kaynak temizliğini uygulamanın tüm yaşam süresi boyunca açık tutun; bu taslaktaki kurulum süresi her sonraki ileti için tam bir politika değildir.