Impostare il proxy di un client ASP.NET Core SignalR prima dell'avvio
Configurare un client ASP.NET Core SignalR tramite HttpConnectionOptions in modo che la negoziazione e il trasporto scelto seguano il percorso previsto.
Prima di avviare un client ASP.NET Core SignalR, configurare le relative opzioni di connessione:
var connection = new HubConnectionBuilder()
.WithUrl("https://events.example/hub", options =>
{
options.Proxy = new WebProxy("http://proxy.example:8080");
})
.Build();
Questo frammento usa il client SignalR moderno e System.Net. Gestire connection durante il ciclo di vita asincrono dell'applicazione; mantenere l'URL dell'hub come destinazione. Per un test di hub pubblico consentito senza credenziali proxy configurate, il elenco di proxy HTTP fornisce intermediari HTTP candidati.
| Configurazione del trasporto | Dove si applica il proxy |
|---|---|
| Comportamento di connessione predefinito | HttpConnectionOptions.Proxy seleziona l'intermediario; anche il trasporto WebSocket predefinito di .NET 8 lo assegna a ClientWebSocketOptions |
HttpMessageHandlerFactory | Personalizza la gestione HTTP, non le connessioni WebSocket |
Un WebSocketFactory | fornito possiede il proprio comportamento di creazione e deve applicare il percorso richiesto |
Una negoziazione riuscita non prova che il successivo tunnel WebSocket sia stato accettato. Se un WebSocketFactory personalizzato usa .NET ClientWebSocket, configurare il proxy di quel socket prima di connettersi. Leggere la diagnostica del trasporto per l'ultimo passaggio completato e ispezionare anche ogni trasporto di riserva deliberato.
Gli esempi ASP.NET SignalR più vecchi che impostano Connection.Proxy appartengono a un'altra generazione. Con HubConnectionBuilder, mantenere il proxy insieme alle altre WithUrl opzioni di trasporto invece di configurare una richiesta HTTP non correlata.