Antes de iniciar um cliente ASP.NET Core SignalR, configure as opções de conexão:

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

Este trecho usa o cliente SignalR moderno e System.Net. Gerencie connection durante o ciclo de vida assíncrono do aplicativo; mantenha a URL do hub como destino. Para um teste de hub público permitido sem credenciais de proxy configuradas, a lista de proxies HTTP fornece intermediários HTTP candidatos.

Configuração do transporteOnde o proxy se aplica
Comportamento de conexão padrãoHttpConnectionOptions.Proxy seleciona o intermediário; o transporte WebSocket padrão do .NET 8 também o atribui a ClientWebSocketOptions
HttpMessageHandlerFactoryPersonaliza o tratamento HTTP, não as conexões WebSocket
Um WebSocketFactoryfornecido possui seu próprio comportamento de criação e deve aplicar a rota exigida

Uma negociação bem-sucedida não prova que o túnel WebSocket posterior foi aceito. Se um WebSocketFactory personalizado usar .NET ClientWebSocket, configure o proxy desse socket antes de conectar. Leia o diagnóstico de transporte da última etapa concluída e inspecione também qualquer transporte de reserva deliberado.

Os exemplos antigos de ASP.NET SignalR que definem Connection.Proxy pertencem a outra geração. Com HubConnectionBuilder, mantenha o proxy com as outras WithUrl opções de transporte em vez de configurar uma solicitação HTTP não relacionada.

Artigos relacionados