Web applications DesktopApp与WebApp通信

Web applications DesktopApp与WebApp通信,web-applications,communication,desktop-application,Web Applications,Communication,Desktop Application,我有一个桌面应用程序和一个浏览器,其中一个已启动的web应用程序正在我的计算机上运行。如果我在桌面应用程序中选择了一些东西,我想让web应用程序执行一些JavaScript 我现在的问题是,是否有可能在这些“应用程序”之间直接通信,或者是通知web应用程序服务器的唯一方式,并且在这些更改之后,web应用程序会使用ajax或其他方式进行轮询 你是否有一些链接可以阅读,或者一些关键字可以与谷歌一起使用 thx提前您的浏览器不是web服务器,因此必须启动所有web通信。 我猜您的桌面应用程序只是一个w

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

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

你是否有一些链接可以阅读,或者一些关键字可以与谷歌一起使用


thx提前

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


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

web应用程序可以通过普通的旧HTTP轻松访问桌面应用程序。将一个基本的HTTP服务器滚到桌面应用程序中,让它在某个高端口上侦听,让Web应用程序向localhost:thatport发出AJAX风格的HTTP查询(我提到jQuery了吗?)

但你希望信息以另一种方式传播——从桌面到网络。不要绝望,有一点叫做投票。web应用程序发出请求。桌面应用程序中的HTTP服务器捕捉到它,并且在一段合理的超时时间(比如10秒)内没有响应。如果在此期间桌面应用程序中发生事件,您将立即使用事件数据进行响应。如果没有,则在超时过期后,您会用一个写着“继续等待”的代码进行响应,web应用程序会重新发出请求。如果需要传递的事件发生在HTTP请求之间,它将排队等待下一个请求

这种技术是由AJAX是异步的这一事实实现的——一个挂起的HTTP请求不会干扰浏览器的正常功能