SignalR: metody UseSignalR i Use Połączenie ions usunięte
W ASP.NET Core 3.0 usługa SignalR przyjęła routing punktów końcowych. W ramach tej zmiany metody UseSignalR, UseConnectionsi niektóre powiązane metody zostały oznaczone jako przestarzałe. W ASP.NET Core 5.0 te przestarzałe metody zostały usunięte. Aby uzyskać pełną listę metod, zobacz Interfejsy API, których dotyczy problem.
Aby omówić ten problem, zobacz dotnet/aspnetcore#20082.
Wprowadzona wersja
5.0 (wersja zapoznawcza 3)
Stare zachowanie
Koncentratory SignalR i programy obsługi połączeń można zarejestrować w potoku oprogramowania pośredniczącego przy użyciu UseSignalR
metod lub UseConnections
.
Nowe zachowanie
Koncentratory SignalR i programy obsługi połączeń powinny być rejestrowane przy UseEndpoints użyciu MapHub metod i MapConnectionHandler w systemie IEndpointRouteBuilder.
Przyczyna wprowadzenia zmiany
Stare metody miały niestandardową logikę routingu, która nie wchodziła w interakcje z innymi składnikami routingu w ASP.NET Core. W ASP.NET Core 3.0 wprowadzono nowy system routingu ogólnego przeznaczenia, nazywany routingiem punktów końcowych. Routing punktu końcowego umożliwił usłudze SignalR interakcję z innymi składnikami routingu. Przejście do tego modelu umożliwia użytkownikom korzystanie z pełnych korzyści z routingu punktów końcowych. W związku z tym stare metody zostały usunięte.
Zalecana akcja
Usuń kod wywołujący UseSignalR
Startup.Configure
lub UseConnections
z metody projektu. Zastąp go wywołaniami metody MapHub
lub MapConnectionHandler
, odpowiednio w treści wywołania metody UseEndpoints
. Na przykład:
Stary kod:
app.UseSignalR(routes =>
{
routes.MapHub<SomeHub>("/path");
});
Nowy kod:
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<SomeHub>("/path");
});
Ogólnie rzecz biorąc, poprzednie MapHub
i MapConnectionHandler
połączenia można przenosić bezpośrednio z treści UseSignalR
i UseConnections
do UseEndpoints
z mało do żadnej zmiany potrzebne.