[SignalR] SignalR 2.0 에 대해서

728x90
반응형

 

 

 

들어가며

프로젝트로 채팅서버를 구현해야할 필요성이 생겨났습니다. 어떠한 방식으로 채팅 서버를 구현할까 내부적으로 많은 이야기가 나왔었는데요. 확장성이 용이한 웹을 이용한 채팅을 개발하는 것에 초점이 맞춰졌습니다.

 

단기간에 해결해야 했기에, SignalR을 이용한 채팅 시스템을 구현을 했는데요.

클라이언트가 웹이 아닌 Unity3D 였기 때문에 가능한 방법을 다각도로 알아봤고, 아직은 Unity3D에서 .NET Core를 지원하지 않기 때문에 .NET Framework 4.5 버전에서 지원되는 SignalR 2.x 버전대로 채팅 시스템을 구현했습니다.

 

 

 

SignalR 이란?

ASP.NET SignalR은 애플리케이션에 실시간 웹 기능을 추가하는 프로세스를 간소화하는 ASP.NET개발자를 위한 라이브러리입니다. 

실시간 웹 기능은 서버가 클라이언트가 새 데이터를 요청할 때까지 기다리지 않고 서버 코드가 사용 가능해지면 즉시 연결된 클라이언트에 콘텐츠를 푸시하는 기능입니다.

 

SignalR을 사용하여 모든 종류의 "실시간" 웹 기능을 ASP.NET 애플리케이션에 추가할 수 있습니다.
채팅이 주된 예로 사용이 되고 있으나, 다양한 범위로 사용이 가능합니다.
사용자가 새로운 데이터를 보기 위해 웹 페이지를 새로 고치거나, 페이지가 새 데이터를 검색하기 위한 Long Polling 을 구현하는 웹 기능엔 SignalR을 사용할 잠재적 후보군 들 입니다.

 

 

아키텍쳐 다이어그램

 

 

특징

  • SignalR은 연결 관리를 자동으로 처리하며,
  • 대화방처럼 메시지를 연결된 모든 클라이언트에 동시에 브로드 캐스트 할 수 있다.
  • 메시지를 특정 클라이언트에 보낼 수 있다.

 

 

시스템 요구사항

  • .NET Framework 4.5 이상이 지원되는 운영체제
  • Windows Server 2008 r2 이상
  • Windows 7 이상
  • SignalR 2.x 는 .NET Framework 4.5 에서만 지원이 됩니다. 최신버전은 .NET Core 를 이용해주세요.

 

 

지원되는 IIS 서버 버전

  • IIS 8 또는 IIS 8 Express 이상.
  • IIS 7 및 7.5. 확장 없는 URL에 대한 지원이 필요합니다.
  • IIS는 통합 모드에서 실행 중이어야 합니다. 클래식 모드는 지원되지 않습니다. IIS가 Server-Sent 이벤트 전송을 사용하여 클래식 모드로 실행되는 경우 최대 30초의 메시지 지연이 발생할 수 있습니다.
  • 호스팅 애플리케이션은 완전 신뢰 모드에서 실행되어야 합니다.

 

 

IIS 사용시 주의 사항

서버 버전이 아닌 IIS를 사용 할 경우, 동시 연결이 10개로 제한이 됩니다. 개인적으로 이것 때문에 한참을 검색했었는데요. MSDN에 답이 명시되어 있었습니다.

개발할 경우에는 IIS Express 를 사용하시고, 실제 서비스를 할때에는 서버용 IIS 를 사용하시면 됩니다. 

 

 

 

 

728x90