Przed uruchomieniem klienta ASP.NET Core SignalR skonfiguruj jego opcje połączenia:

var connection = new HubConnectionBuilder()
    .WithUrl("https://events.example/hub", options =>
    {
        options.Proxy = new WebProxy("http://proxy.example:8080");
    })
    .Build();

Ten fragment używa nowoczesnego klienta SignalR i System.Net. Zarządzaj connection przez asynchroniczny cykl życia aplikacji; zachowaj adres URL centrum jako cel. W przypadku dozwolonego testu publicznego centrum bez skonfigurowanych poświadczeń serwera proxy lista serwerów proxy HTTP dostarcza kandydatów na pośredników HTTP.

Konfiguracja transportuGdzie działa serwer proxy
Domyślne zachowanie połączeniaHttpConnectionOptions.Proxy wybiera pośrednika; domyślny transport WebSocket w .NET 8 również przypisuje go do ClientWebSocketOptions
HttpMessageHandlerFactoryDostosowuje obsługę HTTP, a nie połączenia WebSocket
Dostarczona WebSocketFactoryma własne zachowanie tworzenia i musi zastosować wymaganą trasę

Udane negocjacje nie dowodzą, że późniejszy tunel WebSocket został zaakceptowany. Jeśli niestandardowa WebSocketFactory używa .NET ClientWebSocket, skonfiguruj serwer proxy tego gniazda przed połączeniem. Przeczytaj diagnostykę transportu dla ostatniego ukończonego kroku i sprawdź także każdy zamierzony transport zapasowy.

Starsze przykłady ASP.NET SignalR, które ustawiają Connection.Proxy należą do innej generacji. W HubConnectionBuilder trzymaj serwer proxy przy pozostałych WithUrl opcjach transportu, zamiast konfigurować niepowiązane żądanie HTTP.

Powiązane artykuły