본문 바로가기
프로그래밍/C#_SignalR

[SignalR] SignalR 설명

by 뽀도 2023. 3. 15.

SignalR

● SignalR을 사용하여 프로그래밍하기 이전에 간략하세 설명 및 정리를 하고 시작하겠습니다.

 

 

SignalR이란??

  • "앱에 실시간 웹 기능을 추가하는 것을 간소화하는 오픈 소스 라이브러리"
  • 실시간 웹 기능을 사용하여 서버 - 클라이언트 통신이 쉽다.
  • 실시간 웹 기능이란? 클라이언트가 서버로 새로운 데이터를 요청하기 까지 서버가 기다리기만 하는게 아니라, 서버에서 연결되어 있는 클라이언트로 메시지를 전달 할 수 있는 능력을 의미


SignalR의 몇가지 기능 

  • 연결 관리를 자동으로함
  • 모든 연결된 클라이언트에 메시지를 동시에 보낼수있음         ex) 챗팅
  • 특정 클라이언트나 클라이언트의 그룹에 메시지를 보냄
  • 서버 - 클라이언트 원격 프로시저 호출 (RPC) 생성하기 위한  API. 
  • 늘어난 트래픽 처리를 하도록 크기를 조정

 

 

전송 방법

  • SignalR에서 실시간 통신을 할 때 아래와 같은 기술을 지원한다.
  • 서버 및 클라이언트의 기능 내에서 가장 적합한 전송 방법을 자동으로 선택한다.

1. WebSockets : 서버의 메모리를 가장 효율적으로 사용, 대기시간(Latency)이 짧음

  • windows server 2012나 windows8 이상 and .NetFramework 4.5이상 사용해야함.
  • 만약 위의 조건을 만족하지 못하면 다른 연결 방식을 사용하려함

2. Server-sent 이벤트
  • 서버와 한번 연결을 맺고 나면 일정 시간동안 서버에서 변경이 발생할 때 마다 데이터를 전송 받는 방법
  • 양방향 작업은 아님
3. long poling
  • 폴링이란? 일정한 주기를 가지고 서버와 응답을 계속 주고 받는 방식
  • 롱폴링이란 ?? 서버측에서 접속을 열어두는 시간을 길게해서 클라리언트 연결 상태를 유지하도록 하고 새 데이터를 사용하거나 시간초과 임계값에 도달하면 그때 응답을 전달.

 

 

 

 

허브

  • 허브를 사용하여 클라이언트와 서버간 통신
  • 허브는 클라이언트와 서버가 서로 상대방의 메서드를 직접 호출 할수 있게 만들어줌
  • SignalR은 Json 기반의 텍스트 프로토콜과 MessagePack 기반의 이진 프로토콜이라는 두가지 내장 허브 프로토콜 제공 
  • 클라이언트쪽 메서드의 이름매개 변수를 포함하는 메시지를 전송하여 클라이언트 쪽 코드를 호출 
  • 매서드 매개 변수로 보낸 개체는 구성된 프로토콜을 사용하여 역직렬화됨.
  • 클라이언트에서 일치하는 항목을 찾으면 메서드를 호출하여 역직렬화된 매개변수데이터를 전달 

 

 

 

 

만약 누군가한테 SignalR에 대해 설명한다면?

 

  • MS에서 제공하는 오픈 소스 라이브러리로, 서버 - 클라간 실시간 웹통신을 쉽게 가능하게 해준다. 
  • 전송방식은 web socket방식을 사용하며, 경우에 따라 SSE (server side event), long polling 방식으로 바뀔 수 있다. 
  • '허브'라는 파이프라인을 사용하여 서버 클라간 메서드 호출을 쉽게 한다. 

 

 

 

 

[출처 및 참고]

 

 

반응형

'프로그래밍 > C#_SignalR' 카테고리의 다른 글

[SginalR] SignalR vs Socket.IO  (0) 2023.03.16

댓글