2009-09-23 45 views
0

我有一個桌面應用程序和一個瀏覽器,在我的電腦上運行着一個啓動的網絡應用程序。如果我在桌面應用程序中選擇一些內容,我想讓Web應用程序執行一些JavaScript。DesktopApp與WebApp通信

我現在的問題是,是否有可能直接在這個'應用程序'之間進行通信,或者是唯一的方式來通知Web應用程序服務器,並且Web應用程序在用Ajax或其他方式更改之後進行輪詢?

你有一些鏈接閱讀或一些關鍵字使用谷歌?

thx預先

回答

0

您的瀏覽器不是Web服務器,因此必須啓動所有Web通信。 我會猜測你的桌面應用程序只是一個Web客戶端,而不是一個Web服務器。因此它必須啓動所有網絡通信。 您的Web應用程序是一個Web服務器,因此不必啓動通信。對於瀏覽器或桌面應用程序,它不能啓動通信,因爲它們都不是Web服務器。

因此,如果您希望桌面應用程序與Web瀏覽器通信,則必須使用Web應用程序作爲中介,並且Web應用程序必須存儲瀏覽器和桌面應用程序之間共享的任何消息,並且接收器的通信必須輪詢Web服務器以獲取任何新的共享數據。

1

網絡應用程序可以通過普通的舊HTTP輕鬆訪問桌面應用程序。將原始HTTP服務器放到桌面應用程序中,讓它監聽某個高端端口,讓Web應用程序向本地主機發出一個AJAX樣式的HTTP查詢:thatport(我提到jQuery了嗎?)。

但是你希望信息能夠反過來 - 桌面到網頁。絕望不是,有一點叫投票。該Web應用程序發出請求。桌面應用程序中的HTTP服務器捕獲它並且不響應某些合理的超時(如10秒)。如果在此期間桌面應用程序發生事件,您立即響應事件數據。如果沒有,您會在超時過期後回覆「保持等待」的代碼,然後Web應用程序重新發出請求。如果需要傳遞的事件發生在HTTP請求之間,它將排隊直到下一個請求到來。

AJAX技術是異步的 - 一個掛起的HTTP請求不會影響瀏覽器的正常功能。