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.

TransporteinrichtungWo der Proxy greift
Standardmäßiges VerbindungsverhaltenHttpConnectionOptions.Proxy wählt die Zwischenstelle; der standardmäßige WebSocket-Transport von .NET 8 weist sie zudem ClientWebSocketOptions zu
HttpMessageHandlerFactoryPasst die HTTP-Verarbeitung an, nicht WebSocket-Verbindungen
Eine bereitgestellte WebSocketFactorybesitzt 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.

Ähnliche Artikel