ASP.NET Core 개요SignalR

SignalR란?

ASP.NET Core SignalR은 앱에 실시간 웹 기능을 추가하는 것을 간소화하는 오픈 소스 라이브러리입니다. 실시간 웹 기능을 사용하면 서버측 코드에서 클라이언트에 콘텐츠를 즉시 푸시할 수 있습니다.

SignalR에 적합한 후보:

  • 서버에서 자주 업데이트해야 하는 앱. 예를 들어 게임, 소셜 네트워크, 투표, 경매, 지도 및 GPS 앱이 있습니다.
  • 대시보드 및 모니터링 앱. 예를 들어 회사 대시보드, 즉석 판매 업데이트 또는 여행 경고가 있습니다.
  • 공동 작업 앱. 예를 들어 화이트보드 앱 및 팀 회의 소프트웨어가 있습니다.
  • 알림이 필요한 앱. 소셜 네트워크, 이메일, 채팅, 게임, 여행 경고 및 다른 많은 앱에서 알림을 사용합니다.

SignalR은 서버-클라이언트 RPC(원격 프로시저 호출)를 만들기 위한 API를 제공합니다. RPC는 서버 쪽 .NET Core 코드의 클라이언트에서 함수를 호출합니다. 지원되는 플랫폼은 몇 가지가 있으며, 각 플랫폼은 해당 클라이언트 SDK와 함께 제공됩니다. 이로 인해 RPC 호출에 의해 호출되는 프로그래밍 언어는 다릅니다.

ASP.NET Core에 대한 SignalR의 몇 가지 기능은 다음과 같습니다.

  • 연결 관리를 자동으로 처리합니다.
  • 모든 연결된 클라이언트에 메시지를 동시에 보냅니다. 예를 들어 대화방이 있습니다.
  • 특정 클라이언트나 클라이언트의 그룹에 메시지를 보냅니다.
  • 늘어난 트래픽을 처리하도록 크기를 조정합니다.

원본은 GitHub의 SignalR 리포지토리에서 호스팅됩니다.

전송

SignalR에서는 실시간 통신을 처리하는 다음과 같은 기술을 지원합니다(정상적인 대체 순서).

SignalR은 서버 및 클라이언트의 기능 내에서 가장 적합한 전송 방법을 자동으로 선택합니다.

허브

SignalR은 허브를 사용하여 클라이언트와 서버 간에 통신합니다.

허브는 클라이언트와 서버가 서로 메서드를 호출할 수 있도록 하는 높은 수준의 파이프라인입니다. SignalR은 클라이언트에서 서버에 대한 메서드를 호출할 수 있도록 하고 그 반대의 경우도 가능하게 하는 컴퓨터 경계 간 디스패치를 처리합니다. 강력한 형식의 매개 변수를 메서드에 전달하여 모델 바인딩을 사용할 수 있습니다. SignalR 에서는 두 가지 기본 제공 허브 프로토콜인 ON 기반 JS의 텍스트 프로토콜과 MessagePack을 기반으로 하는 이진 프로토콜을 제공합니다. MessagePack은 일반적으로 ON에 비해 JS더 작은 메시지를 만듭니다. 이전 브라우저는 MessagePack 프로토콜 지원을 제공하기 위해 XHR 수준 2를 지원해야 합니다.

허브는 클라이언트 쪽 메서드의 이름 및 매개 변수를 포함하는 메시지를 전송하여 클라이언트 쪽 코드를 호출합니다. 메서드 매개 변수로 보낸 개체는 구성된 프로토콜을 사용하여 역직렬화됩니다. 클라이언트는 클라이언트 쪽 코드의 메서드와 이름을 일치시키려고 시도합니다. 클라이언트에서 일치하는 항목을 찾으면 메서드를 호출하여 역직렬화된 매개 변수 데이터를 전달합니다.

추가 자료