최선의 방법은 무엇일을 통지하는 비 웹 응용 프로그램에 대한 변경 웹 페이지에서?

StackOverflow https://stackoverflow.com/questions/817167

문제

말하자 나는 두 응용 프로그램을 함께 일하는 정도입니다.

  1. 웹 응용 프로그램(PHP,Ruby on Rails,...)
  2. 데스크톱 응용 프로그램(Java,C++,...)

데스크탑 응용 프로그램에 통보하는 웹에서 응용 프로그램 및 지연 사이에 전송 및 수신하는 통지해야 합 짧습니다.(< 10seconds)

무엇을 가지 방법이 있을까요?나는 생각할 수 있는 투표에 10 초 간격지만,많이 생산할 것이라고 트래픽이 많은 경우 데스크탑 응용 프로그램을 확보할 수 있습니다.LAN 내가 사용하는 방송 UDP,그러나 불행하게도 가능하지 않은 여기...

내가 감사한 아이디어를 쉽게 확인할 수 있게 되었습니다.

도움이 되었습니까?

해결책

나는 생각은"최상의 방법"여기에 따라 달라집니다 숫자의 데스크탑 클라이언트를 기대를 제공합니다.이 있는 경우 단지 하나의 데스크탑 통보,그 후에 폴링 잘 있을 수 있습니다 정밀한 접근 방식-네,폴링은 훨씬 더 많은 오버헤드보다 이벤트 기반의 알림지만,그것은 확실히 될 수 있는 가장 쉬운 솔루션을 구현합니다.

는 경우의 오버헤드 투표가 진정으로 받아 들일 수없는,그 다음에 나는 두 가지 기본적인 대안:

  1. 지 지속적인 연결이지 및 웹 서버(수 있는"혜성"스타일로 웹 요청,또는 원 소켓 연결)
  2. 노출 내에서 서비스 데스크탑 앱을 등록하고,주소가 제공하는 서비스 웹 서버입니다.이 방법으로 웹 서버를 호출할 수 있습을 바탕으로 필요합니다.

하지만,경고-모두 대안의 전체 굄목 개는.몇 하이라이트:

  • 리 까다로운 일이 될 수 있습 때문에,당신은 당신의 웹 서버를 핫 스왑 가능
  • 전화를 외부 서비스(예를 들어,데스크톱)에서는 웹 서버가 위험하기 때문에,이를 요청할 수 없습니다.당신이 알에는 별도의 스레드를 방지하는 상황을 webserver.

을 완화하는 문제의 일부할 수 있습 분리 신뢰할 수 데스크톱에서 웹 서버를 도입하여 중개자 notification 서버의 웹 서버에 게시할 수 있는데 어딘가에,그리고 데스크톱 조사/연결/등록가를 확보할 수 있습니다.을 바퀴를 개혁하지 마십시오,여기에 관련되어 있습니다 어떤 종류의하는 데 사용되는 프록시 시스템물론 이것은 추가 복잡성의 필요를 유지하는 새로운 중간에 있습니다.

또 다시,이러한 모든 방법은 아마 매우 복잡,그래서 내가 말하는 폴링은 아마도 최선의 방법이다.

다른 팁

내가 볼 수있는 두 가지 방법:

  • 데스크탑 응용 프로그램 설문 웹앱
  • 웹 응용 프로그램에 알립지 응용 프로그램

웹 앱을 게시할 수 있 RSS 피드 하지만 바탕 화면 응용 프로그램은 여전히 있을 먹는 모든 10s.

교통 해야 되지 않을 거:당신이 사용하는 경우 HTTP 요청을 얻을 것이다,당신은 작은 패킷의 날짜에 마지막으로 수정(편리하게 이름 마지막으로 수정).

작업을 달성하기 위해 무엇을 해야하는지 정확히 모르지만 데스크탑 애플리케이션 PC에서 Windows 서비스를 작성하는 것이 좋습니다.

이 서비스는 새로운 변경 사항을위한 모든 시간 간격마다 웹 응용 프로그램을 확인하고 변경이 발생하면 웹 응용 프로그램과 웹 애플리케이션이 변경 될 경우 확인을 통해 Desktop 애플리케이션을 실행할 수 있습니다.

나는 이것이 정확히 시도하지 않았지만이 아이디어처럼 사용하는 것을 제안하고 있기를 바랍니다.

신디케이트 계층은 시스템을 확장하는 데 도움이됩니다.

데스크탑 앱은 "게시자"서비스 (여러/많은 기계 중 하나에서 실행)에 등록 할 수 있습니다.이 게시자 서비스는 웹 앱에서 "통지"를 수신하여 즉시 등록 된 가입자에게 알림을 시작합니다.

필요한 게시자 수는 사용자 수에 따라 증가합니다.

편집 : 데스크탑 앱이 소켓에서 듣는 것이 필요하다는 것을 언급하는 것을 잊었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top