【问题标题】:DesktopApp communicates with WebApp桌面应用程序与 Web 应用程序通信
【发布时间】:2009-09-23 12:27:35
【问题描述】:

我有一个桌面应用程序和一个浏览器,在我的计算机上运行了一个已启动的 Web 应用程序。如果我在桌面应用程序中选择某些内容,我想让 Web 应用程序执行一些 JavaScript。

我现在的问题是,是否有可能在此“应用程序”之间直接通信,或者是通知网络应用服务器的唯一方法,并且网络应用程序在此更改后使用 ajax 或其他方式进行轮询?

您是否有一些要阅读的链接或一些可用于 Google 的关键字?

提前谢谢

【问题讨论】:

    标签: web-applications communication desktop-application


    【解决方案1】:

    网络应用可以通过普通的旧 HTTP 轻松访问桌面应用。将原始 HTTP 服务器放入您的桌面应用程序,让它侦听某个高端口,让 Web 应用程序向 localhost:thatport 发出 AJAX 样式的 HTTP 查询(我提到过 jQuery 吗?)。

    但您希望信息反过来 - 桌面到网络。不要绝望,有一种叫做轮询的东西。 Web 应用程序发出请求。桌面应用程序中的 HTTP 服务器捕获它,并且在一些合理的超时(例如 10 秒)内没有响应。如果在此期间桌面应用程序中发生了事件,您会立即使用事件数据进行响应。如果没有,一旦超时到期,您将使用“继续等待”的代码进行响应,并且 Web 应用程序会重新发出请求。如果需要传递的事件发生在 HTTP 请求之间,它会排队等待下一个请求到来。

    AJAX 是异步的,因此启用此技术 - 待处理的 HTTP 请求不会干扰浏览器的正常功能。

    【讨论】:

      【解决方案2】:

      您的浏览器不是网络服务器,因此必须启动所有网络通信。 我猜你的桌面应用程序只是一个 Web 客户端,而不是一个 Web 服务器。因此它必须启动所有的网络通信。 您的 Web 应用程序是一个 Web 服务器,因此不必启动通信。对于浏览器或桌面应用程序,它无法启动通信,因为它们都不是 Web 服务器。

      因此,如果您希望桌面应用程序与 Web 浏览器进行通信,则必须使用 Web 应用程序作为中介,并且 Web 应用程序必须存储浏览器和桌面应用程序之间共享的任何消息,以及通信必须轮询 Web 服务器以获取任何新的共享数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多