Pred spustením klienta ASP.NET Core SignalR nakonfigurujte jeho možnosti pripojenia:

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

Tento fragment používa moderného klienta SignalR a System.Net. Spravujte connection počas asynchrónneho životného cyklu aplikácie; adresu hubu ponechajte ako cieľ. Pre povolený test verejného hubu bez nakonfigurovaných prihlasovacích údajov proxy poskytuje zoznam HTTP proxy kandidátskych HTTP sprostredkovateľov.

Nastavenie prenosuKde sa proxy uplatňuje
Predvolené správanie pripojeniaHttpConnectionOptions.Proxy vyberá sprostredkovateľa; predvolený prenos WebSocket v .NET 8 ho tiež priraďuje ClientWebSocketOptions
HttpMessageHandlerFactoryPrispôsobuje spracovanie HTTP, nie pripojenia WebSocket
Dodaný WebSocketFactoryvlastní svoje správanie pri vytváraní a musí použiť požadovanú trasu

Úspešné vyjednávanie nedokazuje, že neskorší tunel WebSocket bol prijatý. Ak vlastný WebSocketFactory používa .NET ClientWebSocket, nakonfigurujte proxy tohto socketu pred pripojením. Čítajte diagnostiku prenosu pre posledný dokončený krok a preskúmajte aj každý zámerný záložný prenos.

Staršie príklady ASP.NET SignalR, ktoré nastavujú Connection.Proxy patria inej generácii. S HubConnectionBuilder držte proxy pri ostatných WithUrl možnostiach prenosu namiesto konfigurovania nesúvisiacej požiadavky HTTP.

Súvisiace články