SignalR: métodos UseSignalR e UseConnections removidos
No ASP.NET Core 3.0, o SignalR adotou o roteamento de ponto de extremidade. Como parte dessa alteração, os métodos UseSignalRe UseConnections e alguns outros relacionados foram marcados como obsoletos. No ASP.NET Core 5.0, esses métodos obsoletos foram removidos. Para obter a lista completa de métodos, confira APIs afetadas.
Para ver a discussão sobre esse problema, confira dotnet/aspnetcore#20082.
Versão introduzida
5.0 versão prévia 3
Comportamento antigo
Os hubs e manipuladores de conexão do SignalR podem ser registrados no pipeline do middleware usando os métodos UseSignalR
ou UseConnections
.
Novo comportamento
Os hubs e os manipuladores de conexão do SignalR devem ser registrados em UseEndpoints usando os métodos de extensão MapHub e MapConnectionHandler em IEndpointRouteBuilder.
Motivo da alteração
Os métodos antigos tinham uma lógica de roteamento personalizada que não interagia com outros componentes de roteamento no ASP.NET Core. No ASP.NET Core 3.0, um novo sistema de roteamento de uso geral, chamado roteamento de ponto de extremidade, foi introduzido. O roteamento de ponto de extremidade permite que o SignalR interaja com outros componentes de roteamento. A mudança para esse modelo permite que os usuários usufruam dos benefícios completos do roteamento de ponto de extremidade. Consequentemente, os métodos antigos foram removidos.
Ação recomendada
Remova o código que chama UseSignalR
ou UseConnections
do método Startup.Configure
do projeto. Substitua-o por chamadas a MapHub
ou MapConnectionHandler
, respectivamente, no corpo de uma chamada a UseEndpoints
. Por exemplo:
Código antigo:
app.UseSignalR(routes =>
{
routes.MapHub<SomeHub>("/path");
});
Novo código:
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<SomeHub>("/path");
});
Em geral, as chamadas a MapHub
e MapConnectionHandler
anteriores podem ser transferidas diretamente do corpo de UseSignalR
e UseConnections
para UseEndpoints
com pouca ou nenhuma alteração necessária.