我正在用C ++编写一个程序,它将在后台运行以执行不同的任务 - 一个守护。
除了通常的任务之外,Web应用程序应该与它进行通信(执行COMET模式时的AJAX请求=大量打开但正在连接的连接)。
所以问题是:我应该如何将它连接到Web服务器(apache和lighttpd相关)?
我读过的内容FastCGI对于该任务非常有趣,但我读过的所有参考文献都在谈论在必要时启动FastCGI应用程序的Web服务器。这在这里不起作用,因为deamon已经在运行......
我还读过Web服务器会通过社交与FastCGI应用程序通话 - 这对我来说可能是一个切入点,守护者“只”需要与这样的套接字交谈。
但是有没有可用的好图书馆? 看一下http://cppcms.com/wikipp/en/page/main的特征,它对我来说看起来很有趣 - 但是在我的情况下这可行吗?它可以被剥离 - 甚至提供SQL连接对我的情况来说太沉重了......
那么你能给我什么建议?
PS:性能明智我调查单线程但异步实现适用于deamon< - >网络服务器胶水。
答案 0 :(得分:1)
FastCGI是与Web服务器通信的标准协议。所有提到的Web服务器都可以通过fastcgi与远程deamon应用程序通信。
http://cppcms.com/wikipp/en/page/cppcms_1x_tut_web_server_config
另外,如果您正在寻找Comet支持,那就是CppCMS本身为您提供的支持:
http://blog.cppcms.com/post/107
并且它可以被剥离 - 提供甚至SQL连接对我的情况来说太沉重了......
CppCMS库非常小,它也允许减小其大小:
http://cppcms.com/wikipp/en/page/cppcms_1x_build#Build.Options
SQL连接CppDB也是独立的部分。
性能方面我调查单线程但异步实现适用于deamon< - >网络服务器胶水。
它是标准的CppCMS运行模式之一 - 运行异步Web应用程序。
更新:
我读过的内容FastCGI对于该任务非常有趣,但我读过的所有参考文献都在谈论在必要时启动FastCGI应用程序的Web服务器。这在这里不起作用,因为deamon已经在运行..
确实有些网络服务器启动快速cgi应用程序,但是:
的Apache:
mod_fascgi
允许启动FastCGI应用程序或连接到独立的应用程序mod_scgi
连接到独立应用程序 - 无法启动应用程序。mod_fcgid
总是启动应用程序 - 不适合你另外一般情况下,apache不适合处理许多空闲连接的模式,因为它使用每个连接的线程(甚至是依赖于mpm的进程)。
Nginx - 根本不启动应用程序,但是对于fastcgi目前不是最好的彗星流因为缓冲,所以SCGI会更好用nginx(假设你使用的是最新的nginx版本)
< / LI>小注意:SCGI是非常类似于FastCGI的协议,但非常简单。