据我了解,一旦您在处理完您的请求后调用 FCGI_Accept(),服务器就会关闭与客户端的连接,并且无法向该客户端发送任何其他内容。因此,我想知道是否有任何方法可以防止这种情况并“保存”连接(句柄?),以便我可以在处理另一个请求后响应该请求。我打算在 Apache 上使用 mod_fastcgi,如果它有所作为的话。
故事:
我正在尝试在服务器上使用 FastCGI 并在客户端使用 Ajax 长轮询来制作即时消息传递系统。这个想法是创建一个事件驱动的服务器,客户端的“get”请求检查未完成的消息以返回或存储连接以供以后响应;“发送”请求会检查与收件人的可用连接,如果不可用,则将消息存储在内存中。我首先使用 FastCGI 的唯一原因是因为它使用持久进程,它允许在连接之间共享资源,所以我愿意接受其他建议。我知道您可以将数据库用作共享资源,并让每个连接产生一个轮询数据库以获取新信息的进程,尽管它有效,但似乎效率非常低。
我刚刚开始研究 FastCGI,所以也许这不是解决我的问题的最合适的方法,但这是我遇到的第一个障碍。提前致谢。