4

好吧,我们都知道无头服务器。实际上,可能绝大多数服务器都是无头的。

像往常一样(似乎),我的情况要求完全不同。基本上,提议的架构看起来或多或少像:

RTG SA

应用服务器 (node.js) 位于物理连接到两个屏幕的物理机器上。

在这台机器和网络之间有各种各样的常规网络层。请记住,此设置的主要原因之一是物理可移植性:即客户端获得必要的硬件作为产品。服务器本身依赖 CDN 获取静态文件等。

每个监视器/屏幕都需要显示由同一节点服务器生成的不同内容。

现在这个服务器可能会在 Windows 上运行,但是给定一个概念(这是我的问题所在),我可以更改代码以在目标平台上运行。好吧,根据我的代码,这甚至可以自动完成。

所以,我的实际问题。Node 非常灵活,它可以由任何东西运行——甚至是定制软件(C++、Delphi,甚至 GM)。只是shell_exec('node server.js'),我们走了。

但是屏幕本身需要非常动态。所以节点需要以某种方式影响两个屏幕。我正在考虑的几个选项:

  • 一个自定义应用程序,它创建两个可调整大小、无功能的窗口,并带有嵌入式 chromium 浏览器,以某种方式由节点服务器控制(节点如何与这些浏览器反应?)
  • 一个自定义应用程序,根据节点 CLI 输出,更新两个屏幕的 UI。因为我需要一些华丽的 UI,所以这个应用程序将在 GameMaker 或类似的引擎中创建。

PS:以防万一你问;与网络相对的物理连接(例如,基于 Web 的 GUI 前端)是设计使然。

4

1 回答 1

6

我只是将结果/监控屏幕连接为常规 HTML 页面。在您的 Node 应用程序中,创建第二个 HTTP 服务器(在非标准端口上,与公共防火墙隔离)提供监控页面。

使用socket.io将实时数据发送到监控页面,可以让一切看起来很漂亮。在 Chrome 的全屏实例中启动它。

这种方法将您完全从任何类型的平台依赖中解放出来,并将监控应用程序与服务器应用程序分离。如果需要,它让您可以在单独的盒子上运行监控应用程序。

于 2012-09-26T17:54:42.577 回答