ASP.NET Core SignalR 개요

SignalR이란 무엇인가요?

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

SignalR에 적합한 후보:

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

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

다음은 ASP.NET Core SignalR 몇 가지 기능입니다.

  • 연결 관리를 자동으로 처리합니다.
  • 모든 연결된 클라이언트에 메시지를 동시에 보냅니다. 예를 들어 대화방이 있습니다.
  • 특정 클라이언트나 클라이언트의 그룹에 메시지를 보냅니다.
  • Azure SignalR Service리디스 백플레인 같은 옵션을 사용하여 증가하는 트래픽을 처리하도록 확장합니다.
  • 지원되는 시나리오에 대한 트리밍 및 네이티브 AOT(Ahead-Of-Time) 컴파일을 지원합니다.
  • 허브 메서드에서 다형 형식 처리를 지원합니다.
  • SignalR을/를 사용한 분산 추적을 ActivitySource 허브 서버 및 .NET 클라이언트에서 지원합니다.
  • SignalR 허브 프로토콜

원본은 GitHub의 저장소에 호스팅됩니다.

Transports

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

  • WebSockets
  • 서버에서 보낸 이벤트
  • 긴 폴링

SignalR은 서버 및 클라이언트의 기능 내에서 가장 적합한 전송 방법을 자동으로 선택합니다. WebSocket은 일반적으로 최상의 성능을 제공하기 때문에 기본 전송입니다.

Hubs

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

허브는 클라이언트와 서버가 서로 메서드를 호출하는 데 사용하는 상위 수준 파이프라인입니다. SignalR 는 컴퓨터 경계를 넘어 디스패치를 자동으로 처리하므로 클라이언트는 서버에서 메서드를 호출할 수 있고 그 반대의 경우도 마찬가지입니다. 강력한 형식의 매개 변수를 메서드에 전달하여 모델 바인딩을 사용하도록 설정할 수 있습니다. SignalR 는 JSON(기본값)을 기반으로 하는 텍스트 프로토콜과 MessagePack을 기반으로 하는 이진 프로토콜이라는 두 가지 기본 제공 허브 프로토콜을 지원합니다. MessagePack은 일반적으로 JSON과 비교하여 더 작은 메시지를 만듭니다. 자세한 내용은 ASP.NET Core에서 MessagePack Hub 프로토콜 사용SignalR을 참조하세요.

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

추가 리소스

SignalR이란 무엇인가요?

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

SignalR에 적합한 후보:

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

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

다음은 ASP.NET Core SignalR 몇 가지 기능입니다.

  • 연결 관리를 자동으로 처리합니다.
  • 모든 연결된 클라이언트에 메시지를 동시에 보냅니다. 예를 들어 대화방이 있습니다.
  • 특정 클라이언트나 클라이언트의 그룹에 메시지를 보냅니다.
  • Azure SignalR Service리디스 백플레인 같은 옵션을 사용하여 증가하는 트래픽을 처리하도록 확장합니다.
  • 지원되는 시나리오에 대한 트리밍 및 네이티브 AOT(Ahead-Of-Time) 컴파일을 지원합니다.
  • 허브 메서드에서 다형 형식 처리를 지원합니다.
  • 분산 추적을 ActivitySource 허브 서버 및 .NET 클라이언트에 대해 SignalR를 사용하여 지원합니다.
  • SignalR 허브 프로토콜

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

Transports

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

  • WebSockets
  • 서버에서 보낸 이벤트
  • 긴 폴링

SignalR은 서버 및 클라이언트의 기능 내에서 가장 적합한 전송 방법을 자동으로 선택합니다. WebSocket은 일반적으로 최상의 성능을 제공하기 때문에 기본 전송입니다.

Hubs

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

허브는 클라이언트와 서버가 서로 메서드를 호출할 수 있도록 하는 상위 수준 파이프라인입니다. SignalR은 자동으로 컴퓨터 경계를 넘어선 디스패치를 처리하여, 클라이언트가 서버의 메서드를 호출할 수 있게 하고, 그 반대도 가능하게 합니다. 강력한 형식의 매개 변수를 메서드에 전달하여 모델 바인딩을 사용할 수 있습니다. SignalR 는 JSON(기본값)을 기반으로 하는 텍스트 프로토콜과 MessagePack을 기반으로 하는 이진 프로토콜이라는 두 가지 기본 제공 허브 프로토콜을 지원합니다. MessagePack은 일반적으로 JSON과 비교하여 더 작은 메시지를 만듭니다. 자세한 내용은 SignalR를 위한 ASP.NET Core에서 MessagePack Hub 프로토콜 사용을 참조하세요.

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

추가 리소스

SignalR이란 무엇인가요?

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

SignalR에 적합한 후보:

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

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

다음은 ASP.NET Core SignalR 몇 가지 기능입니다.

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

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

Transports

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

  • WebSockets
  • 서버에서 보낸 이벤트
  • 긴 폴링

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

Hubs

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

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

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

ECMAScript 6(ES6)을 지원하지 않는 브라우저

SignalR 는 ES6을 대상으로 합니다. ES6을 지원하지 않는 브라우저의 경우 라이브러리를 ES5로 변환합니다. 자세한 내용은 ES6 시작하기 - Traceur 및 Babel을 사용하여 ES6에서 ES5로 변환하기를 참조하세요.

추가 리소스