Перед запуском клієнта 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.

Схожі статті