gpt4 book ai didi

node.js - 是否可以从 Meteor 构建基于 Node 的 headless 客户端?

转载 作者:IT老高 更新时间:2023-10-28 23:08:40 26 4
gpt4 key购买 nike

我正在开发一个系统,通过 Meteor 应用程序控制远程机器(连接到投影仪和其他一些硬件)。目前,我们正在使用用 C++ 编写的本土 DDP 客户端来实现这一点,但这种方法并不像我想要的那样灵活:

  • C++ 和 JavaScript 之间存在重复。
  • 升级很困难,因为我们不能同时部署服务器和客户端,所以我们总是要考虑向后兼容性和顺序。

所以我正在考虑用 JavaScript 重写 C++ 应用程序的 Meteor 部分。理想情况下,我想要的是我们的应用程序有一个特殊的客户端(称为 headless,类似于 serverclient) :

  • 与 Meteor 应用程序的其余部分使用相同的源构建,因此我们可以重用与服务器和 Web 客户端上相同的业务逻辑,
  • 在客户端机器上的 Node.js 中运行,因此它可以访问操作系统,并且
  • 不包含任何浏览器代码,但添加了一些其他特定于控制机器和与 C++ 应用程序通信的代码。

如果这个客户端不包含任何实际代码,而只是一段引导代码,那就更好了。 Bootstrap 将从服务器下载实际的应用程序代码,并在服务器更新时重新下载,这与 HTML 客户端发生的方式相同。这将使更新更容易,因为我们可以假设服务器和客户端始终运行相同的版本。

这样的事情存在吗?如果不是,我可以在不付出不合理努力的情况下接近多远?搜索“meteor headless client”和“meteor node client”对我没有帮助,only somewhat related question我发现没有很好的回答。

最佳答案

您应该可以使用 meteor-desktop 来实现此功能。包来构建你的远程 headless 客户端。

https://www.npmjs.com/package/meteor-desktop#architecture

In Electron app, there are two processes running along in your app. The so-called main process and renderer process. Main process is just a JS code executed in node, and the renderer is a Chromium process. In this integration your Meteor app is being run in the renderer process and your desktop specific code runs in the main process. They are communicating through IPC events. Basically, the desktop side publishes its API as an IPC event listeners. In your Meteor code, calling it is as simple as Desktop.send('module', 'event');.

这会给你:

  • 访问此(桌面)客户端
  • hot code push (关于 Node 模块的注意事项)
  • 提供 Meteor.isDesktop控制哪些代码在浏览器和桌面客户端上运行

关于node.js - 是否可以从 Meteor 构建基于 Node 的 headless 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40781323/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com