2009-09-23 6 views
0

저는 데스크톱 응용 프로그램과 시작된 웹 응용 프로그램이있는 브라우저가 있습니다. 데스크톱 응용 프로그램에서 뭔가를 선택하면 웹 응용 프로그램에서 일부 JavaScript를 실행하게하고 싶습니다.DesktopApp은 WebApp와 통신합니다.

내 질문이 지금,이 '응용 프로그램'간에 직접 통신 할 가능성이 있습니까? 아니면 웹 응용 프로그램 서버에 알릴 수있는 유일한 방법입니까? 그리고 웹 응용 프로그램이 아약스 또는 다른 것으로 변경된 후에 설문 조사를합니까?

Google에서 사용할 수있는 몇 가지 링크 또는 일부 링크가 있습니까? 사전에

들으

답변

0

브라우저가 웹 서버가 아닌, 따라서 모든 웹 통신을 시작해야합니다. 데스크톱 응용 프로그램이 웹 클라이언트가 아니라 웹 서버라고 추측합니다. 따라서 모든 웹 통신을 시작해야합니다. 웹 응용 프로그램이 웹 서버이므로 통신을 시작할 필요가 없습니다. 브라우저 나 데스크탑 응용 프로그램과 관련하여 웹 서버가 아니기 때문에 통신을 시작할 수 없습니다.

따라서 데스크톱 응용 프로그램을 웹 브라우저와 통신하려면 웹 응용 프로그램을 중개자로 사용해야하며 웹 응용 프로그램은 브라우저와 데스크톱 응용 프로그램간에 공유되는 모든 메시지와 수신기를 저장해야합니다 통신의 새 공유 데이터에 대한 웹 서버를 폴링해야합니다.

1

웹 응용 프로그램은 일반적인 기존 HTTP를 통해 데스크톱 응용 프로그램에 쉽게 액세스 할 수 있습니다. 기본 HTTP 서버를 데스크톱 응용 프로그램으로 옮기고 높은 포트에서 수신 대기하도록하고 웹 응용 프로그램에서 localhost : thatport에 AJAX 스타일의 HTTP 쿼리를 실행하게합니다 (아직 jQuery에 대해 언급 했습니까?).

하지만 정보가 다른 방향으로 이동하기를 원합니다 - 데스크톱에서 웹으로. 절망하지 말고, 폴링이라고하는 작은 것이 있습니다. 웹 앱에서 요청을 보냅니다. 데스크톱 앱 내의 HTTP 서버가이를 감지하고 적절한 시간 제한 (예 : 10 초) 동안 응답하지 않습니다. 이 시간 동안 데스크톱 앱에서 이벤트가 발생하면 즉시 이벤트 데이터로 응답합니다. 그렇지 않은 경우, "제한 대기 중"이라는 코드를 사용하여 제한 시간이 만료되면 웹 앱이 요청을 다시 발행합니다. 전달되어야하는 이벤트가 HTTP 요청 사이에서 발생하면 다음 요청이 오기까지 대기합니다.

이 기술은 AJAX가 비동기 적이기 때문에 가능합니다. 보류중인 HTTP 요청은 브라우저의 정상적인 기능을 방해하지 않습니다.

관련 문제