Definir o proxy de um cliente ASP.NET Core SignalR antes da inicialização
Configure um cliente ASP.NET Core SignalR por meio de HttpConnectionOptions para que a negociação e o transporte escolhido tenham a rota pretendida.
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 transporte | Onde o proxy se aplica |
|---|---|
| Comportamento de conexão padrão | HttpConnectionOptions.Proxy seleciona o intermediário; o transporte WebSocket padrão do .NET 8 também o atribui a ClientWebSocketOptions |
HttpMessageHandlerFactory | Personaliza o tratamento HTTP, não as conexões WebSocket |
Um WebSocketFactory | fornecido 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.