Prieš paleisdami ASP.NET Core SignalR klientą, sukonfigūruokite jo ryšio parinktis:

var connection = new HubConnectionBuilder()
    .WithUrl("https://events.example/hub", options =>
    {
        options.Proxy = new WebProxy("http://proxy.example:8080");
    })
    .Build();

Šis fragmentas naudoja šiuolaikinį SignalR klientą ir System.Net. Valdykite connection per asinchroninį programos gyvavimo ciklą; palikite hub URL kaip paskirties vietą. Leidžiamam viešo hub testo atvejui be sukonfigūruotų tarpinio serverio prisijungimo duomenų HTTP tarpinių serverių sąrašas siūlo galimus HTTP tarpininkus.

Transporto sąrankaKur taikomas tarpinis serveris
Numatytasis ryšio elgesysHttpConnectionOptions.Proxy pasirenka tarpininką; .NET 8 numatytasis WebSocket transportas taip pat priskiria jį ClientWebSocketOptions
HttpMessageHandlerFactoryTinkina HTTP apdorojimą, o ne WebSocket ryšius
Pateiktas WebSocketFactoryturi savo kūrimo elgesį ir turi taikyti reikiamą maršrutą

Sėkmingos derybos neįrodo, kad vėlesnis WebSocket tunelis buvo priimtas. Jei pasirinktinis WebSocketFactory naudoja .NET ClientWebSocket, sukonfigūruokite to lizdo tarpinį serverį prieš prisijungdami. Skaitykite paskutinio užbaigto veiksmo transporto diagnostiką ir patikrinkite bet kokį sąmoningą atsarginį transportą.

Senesni ASP.NET SignalR pavyzdžiai, kurie nustato Connection.Proxy priklauso kitai kartai. Naudodami HubConnectionBuilder laikykite tarpinį serverį prie kitų WithUrl transporto parinkčių, o ne konfigūruokite nesusijusią HTTP užklausą.

Susiję straipsniai