Bas*_*Ben 8 c++ ajax web-services backend qt4
对于我的一个应用程序,我想提供一个最小的Web界面.这个核心应用程序是用C++编写的,并使用Qt4作为框架.由于我还使用了一些我编写的库来计算一些东西并进行一些复杂的数据管理,所以我想将这个现有的代码用作Web界面的后端.
想法1:使用嵌入式Web服务器
我尝试的第一件事(在某种程度上有效)是使用嵌入式Web服务器(mongoose).你可以想象,它只是一个非常薄的库,你必须自己实现很多东西(比如会话管理,cookie等).
想法2:使用普通的Web服务器并在我的应用程序中添加fcgi/cgi/scgi后端
接下来我想到的是使用成熟但紧凑的Web服务器(例如,lighttpd)并简单地为它提供fcgi/scgi/cgi后端.我可以使用一个好的框架编写Web应用程序,比如Pylons,PHP或RoR,(...),并且只需要一个URL前缀,这样/a/...我就可以直接与后端通信.
我试图将libfcgi实现到我的应用程序中,但它看起来比需要的更麻烦(例如,您必须实现自己的TCP/IP套接字以在您的应用程序和Web服务器之间传递数据并通过FCGI库进行隧道传输, MEH)
想法3:创建我的应用程序的命令行版本,它执行最基本的操作并使用普通的Web服务器和框架来完成剩下的工作
这是我想到的第三个想法.它基本上是使用传统方式(PHP,RoR等)创建Web应用程序,并使用我的应用程序的命令行版本来处理数据并在需要时返回它.
我在创建Web应用程序方面有一些经验,但我从来没有做过这样的事情,所以我想听听一些想法或建议.我想在浏览器上使用JavaScript(即AJAX),并在Web浏览器和服务器之间传递一些JSON结构,以使用户体验更加顺畅.
那你有什么建议,想法呢?老实说,我不想重新发明轮子.
我永远不会将自定义编写的应用程序作为前端暴露给网络,因为像 apache 或 lighthttp 这样的服务器是构建的。它们为您提供了一些开箱即用的严格安全性。
至于您的应用程序与该网络服务器的交互,这在一定程度上取决于负载以及您使用 PHP、Python 或网络服务器支持的其他语言(当然通过解释器)编写软件的经验。
轻微的负载,从 PHP 访问的命令行工具可能会做得很好。
负载更重,您可能希望使用 Qt 实现一个简单的(SOAP?)服务器并从 python(或 php)脚本访问它。
这样您就不需要在应用程序中进行布局,也不需要实现太多的安全性。