Javascript 如何在嵌入式浏览器和Web端之间进行双向通信 我有一个Windows的C++项目,使用MINBLink作为嵌入式浏览器。(MiniBlink是一种较小的闪烁,接近铬)。我使用这个嵌入式浏览器通过Quasar.js(vue.js的包装器)显示响应迅速、外观美观的对话框

Javascript 如何在嵌入式浏览器和Web端之间进行双向通信 我有一个Windows的C++项目,使用MINBLink作为嵌入式浏览器。(MiniBlink是一种较小的闪烁,接近铬)。我使用这个嵌入式浏览器通过Quasar.js(vue.js的包装器)显示响应迅速、外观美观的对话框,javascript,c++,browser,backend,Javascript,C++,Browser,Backend,问题: 大多数情况下,浏览器只是被动后端。在我的例子中,后端(带有嵌入式浏览器的项目)和前端(对话框)都处于活动状态,因此我需要一些通信。目前,我使用本地服务器捕获从前端到后端的HTTP发送 但是有没有一种从后端到前端的通信方式呢?目前,我只能考虑捕获cookie或使用JS中的永久循环发送http查询以检查可能的响应 没有其他方法可以将信息发送到后端吗?一切都是本地的,我不需要也不想把它发送到网络上 谢谢 想法1:使用本地临时文件一边保存一边读取(也可以双向使用) 想法2(类似于问题作者的解决方

问题: 大多数情况下,浏览器只是被动后端。在我的例子中,后端(带有嵌入式浏览器的项目)和前端(对话框)都处于活动状态,因此我需要一些通信。目前,我使用本地服务器捕获从前端到后端的HTTP发送

但是有没有一种从后端到前端的通信方式呢?目前,我只能考虑捕获cookie或使用JS中的永久循环发送http查询以检查可能的响应

没有其他方法可以将信息发送到后端吗?一切都是本地的,我不需要也不想把它发送到网络上


谢谢

想法1:使用本地临时文件一边保存一边读取(也可以双向使用)

想法2(类似于问题作者的解决方案):本地服务器与双方通信(获取/发布请求到一侧,文本/json另一侧)

想法3:使用launch参数将数据直接传递到链接中,例如:不要使用browserprocess.exe file.html,而是使用browserprocess.exe file.html#show something


还有其他类似于捕获的方法,例如:从另一方运行的任务中检查具有特定二进制名称的进程的窗口标题;我们没有得到足够好的关于你背景的信息,因为你可以在同一个过程或其他过程中使用它,如果这是同一个过程,你也可以直接在miniblink代码中以两种方式直接使用变量,并在它们相遇时做动作,如果语句作为注释添加了一定的性能,WebSocket可能是最好的方式。 如果您不喜欢实现websocket服务器,因为http服务器已经在运行,那么长轮询请求可能是模拟此行为的最佳解决方案

长轮询:客户端发送一个请求,该请求尽可能长时间保持打开状态。如果服务器需要通信,它可以使用open请求通过response发送自己的“请求”。这有点老套,但本质上是WebSocket背后的想法

Mozilla有一篇很好的文章可以帮助您使用WebSocket:

如果您(像我一样)使用vuejs或quasar,您可能需要看看vue原生websocket。


祝你好运

使用WebSocket。谢谢,这看起来正是我要搜索的内容。现在我只需要找到类星体/ VUE的实现,以及C++库/进一步的指导/教程如何处理WebSoCube。由于连接应该保持活动状态,我想websocket服务器应该在它自己的线程中。想法1:可能是最简单的解决方案(技术上),但我并不真正喜欢它,因为我需要在目标系统上写入文件的权限,这可能会被防病毒或类似方法阻止。想法2:我使用它,它工作得相当好,但只适用于前端到后端。我无法启动从服务器到前端的通信。想法3:正如你所说,这只是初始化,但之后就不可能进行通信。我不确定miniblink在内部是如何工作的,我不使用seperate流程。我害怕重新编译miniblink