Задайте прокси на 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 адреса на 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 заявка.