Před spuštěním klienta ASP.NET Core SignalR nakonfigurujte jeho možnosti připojení:

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

Tento fragment používá moderního klienta SignalR a System.Net. Spravujte connection během asynchronního životního cyklu aplikace; adresu hubu ponechte jako cíl. Pro povolený test veřejného hubu bez nakonfigurovaných přihlašovacích údajů proxy poskytuje seznam HTTP proxy kandidátní HTTP prostředníky.

Nastavení přenosuKde se proxy uplatní
Výchozí chování připojeníHttpConnectionOptions.Proxy vybírá prostředníka; výchozí přenos WebSocket v .NET 8 jej také přiřazuje ClientWebSocketOptions
HttpMessageHandlerFactoryPřizpůsobuje zpracování HTTP, nikoli připojení WebSocket
Dodaný WebSocketFactoryvlastní své chování při vytváření a musí použít požadovanou trasu

Úspěšné vyjednávání nedokazuje, že byl pozdější tunel WebSocket přijat. Pokud vlastní WebSocketFactory používá .NET ClientWebSocket, nakonfigurujte proxy tohoto socketu před připojením. Čtěte diagnostiku přenosu pro poslední dokončený krok a prozkoumejte i každý záměrný záložní přenos.

Starší příklady ASP.NET SignalR, které nastavují Connection.Proxy patří jiné generaci. S HubConnectionBuilder držte proxy u ostatních WithUrl možností přenosu, místo abyste konfigurovali nesouvisející požadavek HTTP.

Související články