Share via


SignalR: UseSignalR 및 UseConnections 메서드가 제거됨

ASP.NET Core 3.0에서 SignalR이 엔드포인트 라우팅을 채택합니다. 이러한 변경의 일부로 UseSignalR, UseConnections 및 일부 관련 메서드가 사용되지 않는 것으로 표시되었습니다. ASP.NET Core 5.0에서는 사용되지 않는 메서드가 제거되었습니다. 전체 메서드 목록은 영향을 받는 API를 참조하세요.

이 문제에 대한 자세한 내용은 dotnet/aspnetcore#20082를 참조하세요.

도입된 버전

5.0 미리 보기 3

이전 동작

UseSignalR 또는 UseConnections 메서드를 사용하여 미들웨어 파이프라인에 SignalR 허브 및 연결 처리기를 등록할 수 있었습니다.

새 동작

IEndpointRouteBuilder에서 MapHubMapConnectionHandler 확장 메서드를 사용하여 UseEndpoints 내에 SignalR 허브 및 연결 처리기를 등록해야 합니다.

변경 이유

이전 메서드에는 ASP.NET Core의 다른 라우팅 구성 요소와 상호 작용하지 않는 사용자 지정 라우팅 논리가 있었습니다. ASP.NET Core 3.0에서는 엔드포인트 라우팅이라는 새로운 범용 라우팅 시스템이 도입되었습니다. 엔드포인트 라우팅에서 SignalR이 다른 라우팅 구성 요소와 상호 작용할 수 있습니다. 이 모델로 전환하면 사용자가 엔드포인트 라우팅의 모든 이점을 활용할 수 있습니다. 따라서 이전 메서드가 제거되었습니다.

프로젝트의 Startup.Configure 메서드에서 UseSignalR 또는 UseConnections를 호출하는 코드를 제거합니다. UseEndpoints 호출의 본문에서 이를 각각 MapHub 또는 MapConnectionHandler 호출로 바꿉니다. 예시:

이전 코드:

app.UseSignalR(routes =>
{
    routes.MapHub<SomeHub>("/path");
});

새 코드:

app.UseEndpoints(endpoints =>
{
    endpoints.MapHub<SomeHub>("/path");
});

일반적으로 이전 MapHubMapConnectionHandler 호출을 거의 또는 아무 변경 없이 UseSignalR 또는 UseConnections 본문에서 직접 UseEndpoints로 이전할 수 있습니다.

영향을 받는 API