Proxy eines ASP.NET Core SignalR-Clients vor dem Start festlegen
Konfigurieren Sie einen ASP.NET Core SignalR-Client über HttpConnectionOptions, damit Aushandlung und gewählter Transport die vorgesehene Route erhalten.
Bevor Sie einen ASP.NET Core SignalR-Client starten, konfigurieren Sie dessen Verbindungsoptionen:
var connection = new HubConnectionBuilder()
.WithUrl("https://events.example/hub", options =>
{
options.Proxy = new WebProxy("http://proxy.example:8080");
})
.Build();
Dieses Fragment verwendet den modernen SignalR-Client und System.Net. Verwalten Sie connection über den asynchronen Lebenszyklus der Anwendung; behalten Sie die Hub-URL als Ziel bei. Für einen zulässigen öffentlichen Hub-Test ohne konfigurierte Proxy-Anmeldedaten liefert die HTTP-Proxy-Liste geeignete HTTP-Zwischenstellen.
| Transporteinrichtung | Wo der Proxy greift |
|---|---|
| Standardmäßiges Verbindungsverhalten | HttpConnectionOptions.Proxy wählt die Zwischenstelle; der standardmäßige WebSocket-Transport von .NET 8 weist sie zudem ClientWebSocketOptions zu |
HttpMessageHandlerFactory | Passt die HTTP-Verarbeitung an, nicht WebSocket-Verbindungen |
Eine bereitgestellte WebSocketFactory | besitzt ihr eigenes Erstellungsverhalten und muss ihre erforderliche Route anwenden |
Eine erfolgreiche Aushandlung beweist nicht, dass der spätere WebSocket-Tunnel akzeptiert wurde. Wenn eine eigene WebSocketFactory .NET ClientWebSocket verwendet, konfigurieren Sie den Proxy dieses Sockets vor dem Verbinden. Lesen Sie die Transportdiagnose für den letzten abgeschlossenen Schritt und prüfen Sie auch jeden absichtlichen Ersatztransport.
Ältere ASP.NET SignalR-Beispiele, die Connection.Proxy setzen, gehören einer anderen Generation an. Behalten Sie mit HubConnectionBuilder den Proxy bei den übrigen WithUrl Transportoptionen, statt eine unabhängige HTTP-Anfrage zu konfigurieren.