본문 바로가기
보안뉴스

ASP.NET SignalR

by 맑은청이 2020. 6. 7.
728x90
반응형

안녕하세요. 옆집 컴공생입니다. 오늘은 ASP.NET SignalR 에 대해 알아보겠습니다. 설계 실험 텀프를 이 기반으로 제작을 할거기 때문에 공부를 해야겠어요. 

 

▶ASP.NET SignalR란?

ASP.NET SignalR Microsoft .NET 기반 환경(마소에서 제공하는 웹 개발환경) 에서의 실시간 웹 통신을 가능하게 해주는 GitHub 오픈소스 라이브러리입니다. 

또 .NET 개발 플랫폼에서의 Web 개발 프레임워크인 ASP.NET 에 신규로 추가된 RealTime Web 통신을 위한 웹 Push 기술을 핵심으로 제공하는 오픈소스 라이브러리이기도 합니다.

(같은 말입니다.)

참조사이트 : https://github.com/SignalR/SignalR

 

SignalR/SignalR

Incredibly simple real-time web for .NET. Contribute to SignalR/SignalR development by creating an account on GitHub.

github.com

 

여기서 웹 Push 기술이란 인터넷에서 어떤 전송 요청이 중앙 서버에서 시작되는 정보전달 방식, 즉 사용자가 원하든 원치 않든 방송처럼 뉴스를 제공하는 기술입니다.

 

또한 RealTime Web은 인터넷에서 사용자들이 창작자가 정보를 만들어내는 즉시 실시간으로 받아들일 수 있게 하는 기술입니다. 

 

그럼 ASP.NET SignalR은 방송처럼 뉴스를 제공하는 기술인 웹 Push기술을 즉시 실시간으로 받아들일 수 있게 하는 RealTime Web 으로 만든거겠죠. 비유가 적절한진 모르겠지만 재난문자와 같네요.(코로나 예방을 철저히 합시다)

 

 

 

 

ASP.NET SignalR의 핵심기술로는 다음과 같습니다.

 

1. 클라이언트와 서버와의 연결상태를 지속하는 기술

2. 데이터를 전송하는 기술

 

ASP.NET SignalR은 http 방식으로 클라이언트가 서버에 연결요청을 보내면 TCP 프로토콜 이용연결을 영구적으로 유지한 상태에서 서버에서 클라이언트로 응답메세지를 발신하거나 클라이언트의 요청을 수신합니다. (1) 

 

웹사이트가 변경되지 않는 한 연결상태는 지속되며 연결기반에서 데이터를 전송하기 위해 아래 4개의 전송방식을 통해 클라이언트 <-> 서버 로 데이터 통신을 합니다. 

 

ASP.NET SignalR은 데이터전송 방식으로 최신 브라우저에서 모두 지원하는 HTML5 WebSocket 전송방식을 기본적으로 지원, 혹은 WebSocket방식을 지원하지 않는 오래된 브라우저 사용자들을 위한 다양한 전송방식들도 완벽히 지원합니다. 즉 최신, 예전 모든 브라우저에서 작동을 한다는 거죠. 

 

ASP.NET SignalR이 서버상에서 사용하는 데이터 통신 전송방식은 다음과 같습니다. 

 

▶PUSH 전송기술들

1) HTML5 WebSocket : 대부분의 클라이언트의 HTML5를 지원하는 최신브라우저 최신버전 브라우저(IE10, Chrome, Firefox 등)이 지원됩니다. Opera, Safari 등이 선택적으로 지원됩니다.

 

장점은 클라이언트 <-> 서버 양방향 전송(two way)가 가능해 전송속도 또한 타전송방식에 비해 가장 빠릅니다.

단점은 HTML5를 지원하는 최신브라우저만 지원되며 서버 또한 최신브라우저에서 사용하는 HTLM5 WebSocket 기술을 지원하기 위한 서버 측 환경이 제공이 되어야만 합니다. 즉 적당한 개발 환경이 구축이 되어야만 가능한거죠.(Node.js , Windos Server O/S의경우 Windows 2012 그리고 .Net Framework 4.5 이상) 

 

2) ServerSentEvents : 클라이언트와 서버간 1회선 연결, 재연결 필요 없지만 서버 -> 클라이언트의 단방향 전송만 지원하면 IE 는 지원하지 않습니다.

 

▶Comet 기반 전송기술 

comet 이란 데이터를 원하는 시간에 서버에서 클라이언트로 전송하는 기술입니다. 실시간 서비스를 개발하는데 쓰입니다.

 

3) Forever Frame : IE 에서만 지원하면 iframe이 반복적으로 불필요한 데이터와 함께 로드되는 방식으로 서버 -> 클라이언트 메세지를 전송합니다.

 

4) Ajax long Polling : Long Polling 이란 연결이 지속되지 않으며 지속적으로 클라이언트의 연결가능상태를 확인(Polling) 하여 단일 연결 작업 처리후 연결이 끊기고 다시 폴링을 통해 클라이언트에 연결하는 기술입니다 .즉 하고 싶을 때 폴링해서 하고 연결 끊고 그러는 거죠. Ajax을 지원하는 모든 브라우저가 지원합니다. 

 

 

이렇게 최신과 구 브라우저를 지원하는거죠. 

서버에서 SignalR 전송기술 우선 적용 순서는 WebSocket -> ServerSentEvents -> Forever Frame -> Long Polling 순입니다. 

 

SignalR은 웹 브라우저와 웹 서버간의 연결관리를 자동으로 처리해주고 연결은 브라우저를 닫거나 페이지를 이동하지 않는 이상 지속됩니다. 또한 Server Push 기능을 제공하여 서버에서 브라우저의 클라이언트 코드를 원격프로시저호출(RPC)를 이용해 호출합니다.

여기서 RPC, Remote Procedure Call이란 한 프로그램이 다른 프로그램에  서비스(함수나  프로시저)를 요청하는 프로토콜입니다.( 별도의 원격제어 코드없이) 

 

이렇게 SignalR의 개념을 알아보았습니다. 수고하셨습니다.

 

 

 

※이 글은 http://mixedcode.com/Article/Index?aidx=1109

 

믹스드코드랩:ASP.NET SignalR 소개 및 개발환경 구축하기

안녕하세요. 에디입니다. 오늘은 웹 채팅의 서버측 기술로 사용할 ASP.NET SignalR에 대해 알아보고 개발환경을 구축해보도록 하겠습니다. 1.ASP.NET SignalR 소개 ASP.NET SignalR은 Microsoft .NET 기반 환경에��

mixedcode.com

와 위키피디아등을 보며 포스팅했습니다.

728x90
반응형

'보안뉴스' 카테고리의 다른 글

IT 뉴스읽기  (0) 2020.07.13
API 란?  (0) 2020.06.14
MVC란?  (0) 2020.06.07
개발자들이 인터넷 익스플로러를 싫어하는 이유  (0) 2020.06.01
쿠키,세션,그리고 캐시  (0) 2020.05.29