桌面应用程序和 Web 前端之间的通信
Communication between desktop application and web frontend
我的项目可以分为三个部分:桌面应用程序、服务器后端、服务器前端。我正在使用 websockets 应用程序后端和后端前端通信。前端是单页应用程序。整体看起来像这样:
我需要实现前端和应用程序之间的通信(上图中的虚线箭头)。我可以使用后端服务器作为代理,但在前端和应用程序之间进行直接通信会更有用,这样就不会浪费后端资源。
有什么方法可以在本地应用程序和 Web 前端之间建立直接连接?
PS:我将 Go 用于后端和应用程序,JavaScript 用于前端,WebSockets 用于通信,但欢迎提供一般架构答案。
这可能行得通,但可能需要花很多时间才能安全地完成:
让你的桌面程序 运行 在某个任意端口 p 上有一个网络(套接字)服务器,然后尝试与本地主机对话:p 来自您的前端。
或者您可以尝试在浏览器和桌面应用程序之间执行 WebRTC。快速搜索发现 https://github.com/coreos/go-webrtc-datachannel,目前只是一份规划文件。
您是否正在尝试从您的桌面应用程序连接到 JavaScript 前端?如果是这样,我可以想到以下方案
- WebRTC。 Chrome(和 Opera)和 Firefox 支持它。
- Chrome 本机消息传递,这显然只适用于 chrome,sends/receives 来自桌面应用程序 stdin/out 的信息。
总的来说,我认为 WebRTC 可能是更好的解决方案。不过,这两种解决方案都要求您 运行 在现代浏览器中使用 Web 前端,Chrome/Firefox。
如果你必须处理 IE,我只能想到让你的桌面应用程序 运行 本地网络服务器,并让你的网络应用程序 poll/post 到它。即使那样,您也必须解决跨域问题,并且您可能希望围绕它实施某种级别的安全性,因此它变得相当混乱。
我的项目可以分为三个部分:桌面应用程序、服务器后端、服务器前端。我正在使用 websockets 应用程序后端和后端前端通信。前端是单页应用程序。整体看起来像这样:
我需要实现前端和应用程序之间的通信(上图中的虚线箭头)。我可以使用后端服务器作为代理,但在前端和应用程序之间进行直接通信会更有用,这样就不会浪费后端资源。
有什么方法可以在本地应用程序和 Web 前端之间建立直接连接?
PS:我将 Go 用于后端和应用程序,JavaScript 用于前端,WebSockets 用于通信,但欢迎提供一般架构答案。
这可能行得通,但可能需要花很多时间才能安全地完成:
让你的桌面程序 运行 在某个任意端口 p 上有一个网络(套接字)服务器,然后尝试与本地主机对话:p 来自您的前端。
或者您可以尝试在浏览器和桌面应用程序之间执行 WebRTC。快速搜索发现 https://github.com/coreos/go-webrtc-datachannel,目前只是一份规划文件。
您是否正在尝试从您的桌面应用程序连接到 JavaScript 前端?如果是这样,我可以想到以下方案
- WebRTC。 Chrome(和 Opera)和 Firefox 支持它。
- Chrome 本机消息传递,这显然只适用于 chrome,sends/receives 来自桌面应用程序 stdin/out 的信息。
总的来说,我认为 WebRTC 可能是更好的解决方案。不过,这两种解决方案都要求您 运行 在现代浏览器中使用 Web 前端,Chrome/Firefox。
如果你必须处理 IE,我只能想到让你的桌面应用程序 运行 本地网络服务器,并让你的网络应用程序 poll/post 到它。即使那样,您也必须解决跨域问题,并且您可能希望围绕它实施某种级别的安全性,因此它变得相当混乱。