【问题标题】:Communication between a desktop app and a web app?桌面应用程序和 Web 应用程序之间的通信?
【发布时间】:2011-12-14 23:12:08
【问题描述】:

我有兴趣让桌面应用程序向网络应用程序发送消息。具体来说,用 Java 编写的桌面应用程序需要将消息发送到将在浏览器中运行的 Javascript 函数。消息只需要以一种方式发送。此外,这两个程序将在同一台本地计算机上运行。如有必要,我可以设置本地开发服务器。

我是网络和网络开发的新手,我不知道如何解决这个问题。谁能给点建议?

【问题讨论】:

  • 您想要拥有的确切功能是什么?
  • 我正在尝试使用 Web Audio API 的一些功能。我想在浏览器中进行一些声音文件的播放和音频处理,但要由桌面应用程序控制。(chromium.googlecode.com/svn/trunk/samples/audio/index.html)
  • 混合桌面/Web应用方案实际上是一个临时解决方案。最终我计划让整个应用程序在浏览器中运行,但在开发过程中,我需要在桌面上运行一些遗留代码,然后才能找到时间将其移植到 Javascript。

标签: java javascript web-applications


【解决方案1】:

我认为适当的方法(如果不是唯一的方法)是通过两个应用程序与之通信的服务器

【讨论】:

  • 好的,很酷。谢谢。你能给我一些谷歌的关键字,或者给我一个解释如何做这样的事情的教程吗?
  • 您可以获得任何网络服务器(例如,node.js nodejs.org 这将允许您使用与服务器上的网络应用程序相同的 JavaScript)并与之交互。您如何从桌面应用程序与服务器对话取决于其技术。然而,所有语言都有一些方法来进行 http 通信
  • Aron -- 只是想让您知道您的解决方案对我有用。我使用 node.js 构建了一个本地服务器,作为桌面和 Web 应用程序之间的桥梁。两个应用程序都使用 socket.io 与服务器通信。我从这个项目中借了很多代码:automata.cc/osc-web再次感谢!
【解决方案2】:

我推荐的企业架构方式是

  1. 将公共信息放入网络服务中。
  2. 网站发送信息,可能通过 ajax 或通过导航到不同的 URL 或执行表单 POST 到网络服务。
  3. 桌面应用程序将启动并订阅网络服务。一旦有更新,Web 服务将通知桌面应用程序。 (请注意,桌面应用可能需要轮询更新)。

这种方法就是 flikr、twitter 等服务的使用方式。

轻量级(即更小架构)的破解方法是让您的网站有一个您的桌面应用程序订阅的 RSS 提要。桌面应用通过 RSS 提要进行更新。

这种方法就是新闻网站等服务向读者发送更新的方式。请参阅 google reader 作为示例 RSS 客户端。 RSS 具有从一开始就支持通用 RSS 消费者(例如 MS Outlook 或 google reader)的优势,因为从长远来看,Web 服务可能会更加灵活和清洁。

【讨论】:

    【解决方案3】:

    为什么桌面应用程序需要与 javascript 对话?你实际上想要做什么?向数据库发送数据或从数据库接收数据?在 Web 应用程序上运行一些业务逻辑?这些事情通常是从桌面应用程序到使用肥皂或休息的网站完成的。

    浏览器是否以某种方式嵌入桌面应用程序中?还是它只是作为一个单独的进程运行?似乎音频处理真的应该在桌面应用程序中运行。

    但是,假设浏览器作为单独的应用程序运行,您应该能够通过查询字符串向浏览器发送消息。桌面应用程序可以启动浏览器,将其指向一个 url 并将一些参数传递给它。那么javascript可以处理这些参数。谷歌 jquery 是否可以处理查询字符串参数。

    【讨论】:

    • 不,不涉及数据库。我实际上是在尝试在浏览器中进行一些音频处理。请参阅我上面的评论。
    【解决方案4】:

    嵌入像码头这样的简单容器,然后使用 Jersey 或 Simple Servlet

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-28
      • 1970-01-01
      • 2019-11-03
      • 1970-01-01
      相关资源
      最近更新 更多