8

对于我的一个应用程序,我想提供一个最小的 Web 界面。这个核心应用程序是用 C++ 编写的,并使用 Qt4 作为框架。由于我还使用我编写的一些库来计算一些事情并进行一些复杂的数据管理,我想使用这个现有的代码作为 Web 界面的后端。

想法 1:使用嵌入式 Web 服务器

我尝试的第一件事(并且在某种程度上有效)是使用嵌入式 Web 服务器(猫鼬)。正如你可以想象的那样,它只是一个非常薄的库,你必须自己实现很多东西(如会话管理、cookie 等)。

想法 2:使用普通的 Web 服务器并将 fcgi/cgi/scgi 后端添加到我的应用程序

我想到的下一件事是使用成熟但紧凑的 Web 服务器(例如 lighttpd)并简单地为其提供 fcgi/scgi/cgi 后端。我可以使用一个好的框架来编写 Web 应用程序,比如 Pylons、PHP 或 RoR,(...),并且只需要一个 URL 前缀,这样/a/...我就可以直接与后端对话。

我试图在我的应用程序中实现 libfcgi,但它看起来比需要的更混乱(例如,您必须实现自己的 TCP/IP 套接字才能在您的应用程序和 Web 服务器之间传递数据并通过 FCGI 库将其隧道化,嗯)

想法 3:创建我的应用程序的命令行版本,它执行最基本的操作,并使用普通的 Web 服务器和框架来完成其余的工作

这是我脑海中浮现的第三个想法。它基本上是关于使用传统方式(PHP、RoR 等)创建 Web 应用程序,并使用我的应用程序的命令行版本来处理数据并在需要时返回数据。


我有一些创建 Web 应用程序的经验,但我从来没有做过这样的事情,所以我想听听一些想法或建议。我想在浏览器(即 AJAX)上使用 JavaScript,并在 Web 浏览器和服务器之间传递一些 JSON 结构,以使用户体验更加流畅。

那么您对此有何建议和想法?老实说,我不想重新发明轮子。

4

5 回答 5

4

我永远不会将自定义编写的应用程序作为前端公开给网络,因为构建了像 apache 或 lighthttp 这样的服务器。它们为您提供了一些开箱即用的严重安全性。

至于您的应用程序与该网络服务器的交互,这在一定程度上取决于负载以及您使用 PHP、python 或您的网络服务器支持的其他语言编写软件的经验(当然通过解释器)。

轻微的负载和从 PHP 访问的命令行工具可能会做得很好。

负载更重,您可能希望使用 Qt 实现一个简单的(SOAP?)服务器并从 python(或 php)脚本访问它。

这样你就不需要在你的应用中做布局,你也不需要实现太多的安全性。

于 2010-02-18T09:08:16.210 回答
3

我目前正在研究类似的情况(使用 Qt 的自定义 Web 应用后端),最不坏的选择是 FastCGI。找到了您可能感兴趣的东西。如果没有进行一些认真的测试,就无法生产,但这可能是 Qt 的一个很好的起点 - FastCGI 互操作:FastCGIQt

于 2010-02-18T10:18:50.867 回答
2

我在一个类似的项目(也是一个 Qt 应用程序)中使用了FastCGI 协议驱动程序库,下载链接在该页面的末尾 [Libfastcgi]。与应用程序的集成实际上相对容易。Lighttpd + mod_fastcgi 被用作网络服务器。不过,关于 FastCGIQt 不能说什么。

于 2010-07-28T19:38:48.933 回答
0

You Wt可以很好地为基于 Qt 的应用程序提供 Web 界面。两者都具有相似的编程风格,并且有一个示例演示了与 Qt 的集成。

于 2010-10-14T11:26:12.047 回答
0

这是嵌入式 QML 服务器的示例:https ://github.com/ncp1402/ql-server

于 2015-03-30T01:32:00.013 回答