ASP.NET Core SignalR 소개Introduction to ASP.NET Core SignalR

SignalR란?What is SignalR?

ASP.NET Core SignalR 는 응용 프로그램에 실시간 웹 기능 추가를 간소화 하는 오픈 소스 라이브러리입니다.ASP.NET Core SignalR is an open-source library that simplifies adding real-time web functionality to apps. 실시간 웹 기능을 사용 하면 서버측 코드에서 클라이언트에 콘텐츠를 즉시 푸시할 수 있습니다.Real-time web functionality enables server-side code to push content to clients instantly.

적합 한 후보 SignalR :Good candidates for SignalR:

  • 서버에서 자주 업데이트해야 하는 앱.Apps that require high frequency updates from the server. 예를 들어 게임, 소셜 네트워크, 투표, 경매, 지도 및 GPS 앱이 있습니다.Examples are gaming, social networks, voting, auction, maps, and GPS apps.
  • 대시보드 및 모니터링 앱.Dashboards and monitoring apps. 예를 들어 회사 대시보드, 즉석 판매 업데이트 또는 여행 경고가 있습니다.Examples include company dashboards, instant sales updates, or travel alerts.
  • 공동 작업 앱.Collaborative apps. 예를 들어 화이트보드 앱 및 팀 회의 소프트웨어가 있습니다.Whiteboard apps and team meeting software are examples of collaborative apps.
  • 알림이 필요한 앱.Apps that require notifications. 소셜 네트워크, 이메일, 채팅, 게임, 여행 경고 및 다른 많은 앱에서 알림을 사용합니다.Social networks, email, chat, games, travel alerts, and many other apps use notifications.

SignalR 는 서버-클라이언트 원격 프로시저 호출 (RPC)을 만들기 위한 API를 제공 합니다.SignalR provides an API for creating server-to-client remote procedure calls (RPC). Rpc는 서버 쪽 .NET Core 코드에서 클라이언트에 대 한 JavaScript 함수를 호출 합니다.The RPCs call JavaScript functions on clients from server-side .NET Core code.

SignalRASP.NET Core에 대 한 몇 가지 기능은 다음과 같습니다.Here are some features of SignalR for ASP.NET Core:

  • 연결 관리를 자동으로 처리 합니다.Handles connection management automatically.
  • 모든 연결 된 클라이언트에 동시에 메시지를 보냅니다.Sends messages to all connected clients simultaneously. 예를 들어 대화방입니다.For example, a chat room.
  • 특정 클라이언트나 클라이언트 그룹으로 메시지를 보냅니다.Sends messages to specific clients or groups of clients.
  • 늘어난 트래픽을 처리 하도록 크기를 조정 합니다.Scales to handle increasing traffic.

소스는 SignalR GitHub의 리포지토리에서호스팅됩니다.The source is hosted in a SignalR repository on GitHub.

전송Transports

SignalR 에서는 실시간 통신을 처리 하는 다음과 같은 기술을 지원 합니다 (정상적인 대체 순서).SignalR supports the following techniques for handling real-time communication (in order of graceful fallback):

SignalR 는 서버 및 클라이언트의 기능 내에서 가장 적합 한 전송 방법을 자동으로 선택 합니다.SignalR automatically chooses the best transport method that is within the capabilities of the server and client.

허브Hubs

SignalR허브 를 사용 하 여 클라이언트와 서버 간에 통신 합니다.SignalR uses hubs to communicate between clients and servers.

허브는 클라이언트와 서버가 서로 메서드를 호출할 수 있도록 하는 고급 파이프라인입니다.A hub is a high-level pipeline that allows a client and server to call methods on each other. SignalR 클라이언트에서 서버에 대 한 메서드를 호출할 수 있도록 하 고 그 반대의 경우도 가능 하 게 하는 컴퓨터 경계 간 디스패치를 처리 합니다.SignalR handles the dispatching across machine boundaries automatically, allowing clients to call methods on the server and vice versa. 강력한 형식의 매개 변수를 메서드에 전달 하 여 모델 바인딩을 사용할 수 있습니다.You can pass strongly-typed parameters to methods, which enables model binding. SignalR 에서는 두 가지 기본 제공 허브 프로토콜인 JSON 기반의 텍스트 프로토콜과 MessagePack기반 이진 프로토콜을 제공 합니다.SignalR provides two built-in hub protocols: a text protocol based on JSON and a binary protocol based on MessagePack. MessagePack는 일반적으로 JSON과 비교 하 여 더 작은 메시지를 만듭니다.MessagePack generally creates smaller messages compared to JSON. 이전 브라우저는 MessagePack 프로토콜 지원을 제공 하기 위해 Xhr 수준 2 를 지원 해야 합니다.Older browsers must support XHR level 2 to provide MessagePack protocol support.

허브는 클라이언트 쪽 메서드의 이름 및 매개 변수를 포함 하는 메시지를 전송 하 여 클라이언트 쪽 코드를 호출 합니다.Hubs call client-side code by sending messages that contain the name and parameters of the client-side method. 메서드 매개 변수로 보낸 개체는 구성 된 프로토콜을 사용 하 여 deserialize 됩니다.Objects sent as method parameters are deserialized using the configured protocol. 클라이언트는 클라이언트 쪽 코드의 메서드와 이름을 일치 시 키 려 고 시도 합니다.The client tries to match the name to a method in the client-side code. 클라이언트에서 일치 하는 항목을 찾으면 메서드를 호출 하 여 deserialize 된 매개 변수 데이터를 전달 합니다.When the client finds a match, it calls the method and passes to it the deserialized parameter data.

추가 자료Additional resources