boostπ介子彗星状httpserver

boostπ介子彗星状httpserver,boost,comet,long-polling,httpserver,pion-net,Boost,Comet,Long Polling,Httpserver,Pion Net,我正在尝试使用boost::pion的HTTPServer类高效地实现类似comet的功能 基本上,在我的“handleURI”函数中,我想推迟将结果返回给客户端,直到服务器准备好响应(例如,直到另一个用户向第一个用户发送消息,以使用简单的comet“hello world”应用程序) 我该怎么办?将状态放在堆栈上,然后静默退出,而不创建HTTPResponseWriter 干杯 为您的连接设置一个超时ASIO事件,以便您可以在20分钟或类似的时间后获得连接。我不知道Boostπ介子,但在ASI

我正在尝试使用boost::pion的HTTPServer类高效地实现类似comet的功能

基本上,在我的“handleURI”函数中,我想推迟将结果返回给客户端,直到服务器准备好响应(例如,直到另一个用户向第一个用户发送消息,以使用简单的comet“hello world”应用程序)

我该怎么办?将状态放在堆栈上,然后静默退出,而不创建HTTPResponseWriter


干杯

为您的连接设置一个超时ASIO事件,以便您可以在20分钟或类似的时间后获得连接。我不知道Boostπ介子,但在ASIO中,您希望注册一个读取处理程序,在连接关闭时捕获,并注册一个超时处理程序,在连接实际超时时提醒您。在您的套接字上启用TCP keep alives,以便在套接字消失的情况下检测何时应该获取套接字(虽然TCP keep alives不是保证,所以不要完全依赖它们-并非所有客户端都支持TCP keep alives)。关于计时器,请查看以下计时器示例:


好吧,是的-长轮询是Comet技术之一-这就是为什么这个问题被标记为两者的原因。