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 trasportoDove si applica il proxy
Comportamento di connessione predefinitoHttpConnectionOptions.Proxy seleziona l'intermediario; anche il trasporto WebSocket predefinito di .NET 8 lo assegna a ClientWebSocketOptions
HttpMessageHandlerFactoryPersonalizza la gestione HTTP, non le connessioni WebSocket
Un WebSocketFactoryfornito 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.

Articoli correlati