Преди да стартирате 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 адреса на hub като дестинация. За разрешен тест на публичен hub без конфигурирани прокси идентификационни данни списъкът с HTTP прокси предоставя кандидат HTTP посредници.

Настройка на транспортаКъде се прилага проксито
Поведение по подразбиране на връзкатаHttpConnectionOptions.Proxy избира посредника; транспортът WebSocket по подразбиране на .NET 8 също го задава на ClientWebSocketOptions
HttpMessageHandlerFactoryПерсонализира HTTP обработката, а не WebSocket връзките
Предоставена WebSocketFactoryфабрика притежава поведението си на създаване и трябва да приложи необходимия маршрут

Успешните преговори не доказват, че по-късният WebSocket тунел е приет. Ако персонализиран WebSocketFactory използва .NET ClientWebSocket, конфигурирайте проксито на този сокет преди свързване. Четете диагностиката на транспорта за последната завършена стъпка и прегледайте също всеки умишлен резервен транспорт.

По-стари ASP.NET SignalR примери, задаващи Connection.Proxy принадлежат на друго поколение. С HubConnectionBuilder дръжте проксито при другите WithUrl опции за транспорт, вместо да конфигурирате несвързана HTTP заявка.

Подобни статии