【问题标题】:Designing Javascript frontend <-> C++ backend communication设计 Javascript 前端 <-> C++ 后端通信
【发布时间】:2011-09-12 22:44:00
【问题描述】:

在我最近的将来,我将不得不制作一个带有 C++ 后端和 Web 前端的系统(要求)。目前,我对此知之甚少。我认为前端将触发数据传递,而不是后端 - 所以不需要类似 Comet 的东西。

由于可能在该领域的经验很少,我非常感谢您对我做出的设计决策的 cmets。

首先,我不喜欢从 C++ 生成 HTML 的选项。 因此,C++ 后端必须与 Javascript 前端进行通信。我在这里看到的最简单的选择是 Ajax。到目前为止,我认为应该没问题。

通过 Ajax 与 C++ 后端通信意味着后端应该能够处理 HTTP。最好将提供实际数据的后端与 HTTP 处理功能分开。

在这里我看到了 Node.js 的位置。我对此进行了概述,这就是我所有疑问的所在。

在 Node.js 上拥有一个 HTTP 处理服务器,它将“数据后端”作为 Node.js 模块?我认为,应该没问题 - 但我不确定我是否真的需要所有这些异步,所以可能有一些我不知道的更简单的选项?您将如何制作这样的系统?

提前致谢。

【问题讨论】:

标签: javascript c++ node.js frontend backend


【解决方案1】:

“所有这些异步”并不是 Node.js 努力提供的额外功能。一旦您了解了 Node.js 的工作原理,这是一种不同的 Web 服务视图。

例如,我的同事需要一种将 C++ 程序包装为 Web 服务的方法,但该程序的启动成本很高,因此他们只想运行该程序的一个实例,循环运行,提供服务所有的网络请求。 Node.js 中的整个过程不到两屏。

包装为每个请求调用的单个程序可以在不到十行 Node.js 中完成。不要认为异步是一件苦差事——如果你接受它,Node.js 就很棒。

也就是说,您可以走 CGI 路线,并以更标准的方式进行,最终结果将几乎相同。 This 可能会也可能不会派上用场。

【讨论】:

  • 我喜欢我现在对 node.js 的了解。感谢您的回答。大概我会走这条路。至于 CGI,我认为在 node 下的更高级别的 javascript 中使用 HTTP 代码比在 CGI C++ 中更好。
【解决方案2】:

您是否考虑过 nginx、Apache 等的 CGI/FCGI 模块选项?

如果不是,那么我认为从它开始是有意义的。您的模块将处理 data/json 请求,其余的将由 HTTP 服务器处理。

【讨论】:

  • 谢谢,现在我对 nginx 模块有了一个概述。在这种情况下,“nginx 下的模块”对我来说看起来与“node.js 下的模块”非常相似,而且 node.js 上的模块将用更高级别的语言编写,这是一个优势。为什么你认为 nginx 选项更好?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 2018-01-19
相关资源
最近更新 更多