2013-12-12 3 views
1

나는 사건 기록을 관리하고 다음과 같이 보입니다 n 계층 레거시 응용 프로그램이 있습니다 :SignalR은

enter image description here

경고는 Windows 서비스로 사건 기록에 대조되어있다 웹 응용 프로그램을 통해 사용자가 데스크 탁상에 티켓을 제공하도록 조정했습니다.

웹 응용 프로그램에는 현재 1 분마다 자체적으로 다시로드되는 목록 페이지가 있습니다. SignalR을 사용하여 레코드 변경 사항을 브로드 캐스팅하여이 폴링 동작을 대체하려고합니다.

이 애플리케이션이 웹 파트 일 경우 웹 티어에 SignalR 허브를 배치하는 것이 간단합니다. 필자의 어려움은 Windows 서비스가 사고 기록을 변경 한 허브에 알리는 방법에 있습니다.

웹 응용 프로그램의 부하가 분산되어 있으므로 Sql instance to host a SignalR backplane을 사용하려고합니다. Windows 서비스가 이것과 직접 상호 작용할 수 있습니까?

SignalR 허브를 호스트하는 세 번째 응용 프로그램을 만들어야하고 어떻게 든 웹 응용 프로그램과 Windows 서비스를 통해 통신해야합니까?

모든 의견을 환영합니다.

답변

1

SignalR을 ASP.net 내에 호스팅 할 수 있습니다. 별 문제가되지 않습니다. 일부 변경 사항이있을 때마다 Windows 서비스에서 연결을 설정하고 SignalR에서 일부 메서드를 호출하여 SignalR이 변경 사항에 대해 다른 클라이언트를 호출 할 수있게해야합니다.

+0

내가 원했던 바입니다. 웹 호스팅 허브를 호출하는 Windows 서비스의 예를 본 적이 있다고 생각하지 않습니까? 가장 까다로운 부분은 Windows 서비스가 SQL 상자에서 실행되고있는 것 같습니다. – Nick

+0

솔직히 나는 시도하지는 않았지만 올바른 URL을 가진 연결을 만들고 올바른 참조와 .net 버전을 가지고있는 한 그것에 대한 일부 메서드를 호출하지는 않을 것입니다. –

+0

내 Windows 서비스가 클라이언트 역할을하고 SignalR 허브에 http 호출을해야합니다. 나는 이것을 발견했다 - http://sonyarouje.com/2012/10/02/signalr-real-time-pushing-of-data-to-connected-clients/ - 비슷한 유스 케이스이다. – Nick

0

시나리오에 대해 오해하지 않는 한, Windows 서비스에서 SignalR 서버를 자체 호스팅하고 거기에서 허브 클래스를 만들면됩니다. SignalR 통신에 웹 애플리케이션을 포함시킬 필요는 없으며 단순히 정적 스크립트를 제공하는 데 사용하십시오. 웹 페이지는 Windows 서비스에서 호스팅되는 서버에 대한 SignalR 연결을 제공하며 거기에서 업데이트를 알릴 수 있습니다.

관련 문제