Top Banner
2014년 1월 새해 명품 특강! ASP.NET, 서비스 플랫폼으로 날다! ASP.NET SignalR을 이용한 실시간 양방향 커뮤니케이션 구현 -박용준 Microsoft MVP, MCT
46

ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR...

Jul 13, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

2014년 1월 새해 명품 특강!

ASP.NET, 서비스 플랫폼으로 날다!

ASP.NET SignalR을 이용한실시간 양방향 커뮤니케이션 구현-박용준 Microsoft MVP, MCT

Page 2: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

세션소개 - SignalR

SignalR은실시간사용자상호작용및데이터갱신이필요한

응용프로그램구축을위해제공되는오픈소스라이브러리입니다.

이번시간에는실시간양방향통신기법인 ASP.NET SignalR에대해알아보고이기술을효율적으로사용하는방안에대해알아봅니다.

<%

Page 3: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한
Page 4: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한
Page 5: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

ASP.NET SignalR 특징

Page 6: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

왜? SignalR을사용해야하는가?

SignalR이기본적으로는 Web Socket을지원할뿐만아니라웹소켓이지원되지않는브라우저에서는 Long Polling 같은기술을사용하기에 MS 뿐만아니라누구나 사용할 수 있는 기술

그런이유로수많은브라우저와 iOS를비롯한다양한클라이언트를지원할수있다.

Page 7: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

응답(Response, Notify Data)

Page 8: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한
Page 9: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

SignalR 통신방법

Page 10: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

Forever-Frame

Long Polling

Polling

• Periodic Polling

• Ajax Polling

Comet

Server Send Events

Web Sockets

Page 11: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

구버전의서버또는클라이언트:Long Polling

Page 12: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

최신서버및클라이언트:Web Sockets

Page 13: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

실시간통신의대세 === SignalR

Page 14: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

{transport: ‘longPolling’}

Page 15: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한
Page 16: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한
Page 17: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한
Page 18: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한
Page 19: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한
Page 20: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한
Page 21: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한
Page 22: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

SignalR Hub

Page 23: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

서버

ASP.NET

OWIN

클라이언트

JavaScript

.NET

iOS

스케일아웃

SQL

Service Bus

Redis

Page 24: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한
Page 25: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

Clients.All.doWork()Clients.Caller.doWork()Clients.Others.doWork()

Page 26: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한
Page 27: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

• Groups.Add

• Groups.Remove

Page 28: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한
Page 29: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한
Page 30: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

SignalR 클라이언트

Page 31: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

서버

ASP.NET

OWIN

클라이언트

JavaScript

.NET

iOS

스케일아웃

SQL

Service Bus

Redis

Page 32: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한
Page 33: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

var con = $.hubConnection();

var hub = con.createHubProxy("name");

hub.on("method", function() { /* todo */ });

hub.invoke("method", arg1, arg2);

var con = new HubConnection();

var hub = con.CreateHubProxy("name");

hub.On("method", () => { /* todo */ });

hub.Invoke("method", arg1, arg2);

Page 34: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

다중클라이언트

Page 35: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

SignalR 성능확장

Page 36: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

서버

ASP.NET

OWIN

클라이언트

JavaScript

.NET

iOS

스케일아웃

SQL

Service Bus

Redis

Page 37: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

Back

pla

ne

Page 38: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

Web API

Controller

SignalR

Hub

Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext<ChatHub>().Clients.All.reveiveMessage(message);

Page 39: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한
Page 40: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

CLIENTS

BACKPLANESHOSTS

Page 41: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

http://asp.net 사이트 참조

Page 42: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

협업

브로드캐스트: 대시보드 / 모니터링

게임7

Page 43: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

http://shootr.signalr.net

Page 44: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

마무리

다중호스팅지원

ASP.NET

OWIN

오픈소스

GitHub

• SignalR 관련모든정보 : http://www.asp.net/signalr

• 현재세션관련자료 : http://www.signalr.me/

Page 45: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한

http://www.taeyo.net/

http://signalr.net

http://www.asp.net/signalr

http://github.com/signalr/signalr

http://www.nuget.org/packages?q=signalr

http://bit.ly/KN0FSx

http://damianedwards.wordpress.com

http://Weblogs.asp.net/davidfowler

http://github.com/signalr/signalr.websockets

http://vasters.com/clemensv/2012/02/13/SignalR+Powered+By+Service+Bus.aspx

https://github.com/DyKnow/SignalR-ObjC

https://github.com/SignalR/SignalR/pull/127

Page 46: ASP.NET SignalR을이용한 실시간양방향커뮤니케이션구현download.microsoft.com/download/B/8/3/B837A8DD-B470-4AF4... · 2018-10-16 · 세션소개- SignalR SignalR은실시간사용자상호작용및데이터갱신이필요한