Настройте прокси клиента ASP.NET Core SignalR до запуска
Настройте клиент ASP.NET Core SignalR через HttpConnectionOptions, чтобы его согласование и выбранный транспорт шли по нужному маршруту.
Перед запуском клиента ASP.NET Core SignalR настройте параметры его подключения:
var connection = new HubConnectionBuilder()
.WithUrl("https://events.example/hub", options =>
{
options.Proxy = new WebProxy("http://proxy.example:8080");
})
.Build();
Этот фрагмент использует современный клиент SignalR и System.Net. Управляйте connection в течение асинхронного жизненного цикла приложения; оставьте URL концентратора как пункт назначения. Для разрешённого теста общедоступного концентратора без настроенных учётных данных прокси список HTTP-прокси предлагает подходящих HTTP-посредников.
| Настройка транспорта | Где действует прокси |
|---|---|
| Поведение подключения по умолчанию | HttpConnectionOptions.Proxy выбирает посредника; транспорт WebSocket по умолчанию в .NET 8 также назначает его ClientWebSocketOptions |
HttpMessageHandlerFactory | Настраивает обработку HTTP, а не подключения WebSocket |
Переданная WebSocketFactory | имеет собственное поведение создания и должна применить требуемый маршрут |
Успешное согласование не доказывает, что последующий туннель WebSocket был принят. Если пользовательская WebSocketFactory использует .NET ClientWebSocket, настройте прокси этого сокета перед подключением. Читайте диагностику транспорта для последнего завершённого шага и проверяйте также любой намеренный резервный транспорт.
Старые примеры ASP.NET SignalR, которые задают Connection.Proxy относятся к другому поколению. С HubConnectionBuilder держите прокси вместе с остальными WithUrl параметрами транспорта, а не настраивайте несвязанный HTTP-запрос.