【问题标题】:Poco::Net HTTPServer: How to detect disconnected clients?Poco::Net HTTPServer:如何检测断开连接的客户端?
【发布时间】:2019-02-15 16:15:22
【问题描述】:

我正在使用基于 Poco::Net HTTP 的 http 服务器作为我的 C++ 应用程序的一部分。这很简单,使用Poco::Net::HTTPServer,然后是Poco::Net::HTTPRequestHandler 子类,实现void handleRequest(Poco::Net::HTTPServerRequest &req, Poco::Net::HTTPServerResponse &resp)。在这种方法中,进程可能会变得很耗时,在某些情况下甚至可能会无休止地运行。

浏览器通过 ajax 请求 (XMLHttpRequest) 从 Web 应用程序内部使用这些服务器,有时通过 abort() 那些请求(关闭连接?!)。

如何检测handleRequest(...) 内部的这种情况以停止处理?

顺便说一句:我确实需要这种事情的流程。关于不同的,可能是异步方式的建议,例如传递数据将不起作用。如果 Poco 做不到,那我就得换了。

文档和Poco::Net::HTTPServerRequestPoco::Net::HTTPServerResponse 的一些实验都没有帮助我。

【问题讨论】:

    标签: c++ http poco-libraries


    【解决方案1】:

    几个选项:

    1. 您可以尝试“Poco::Net::Socket::select()”,但它受操作系统限制。
    2. 使用 ping/pong 心跳切换到“Poco::Net::WebSocket”。如果套接字关闭,“receiveFrame()”将抛出异常。

    【讨论】:

      猜你喜欢
      • 2014-04-14
      • 2010-11-15
      • 2015-11-14
      • 1970-01-01
      • 2013-12-10
      • 2020-01-15
      • 1970-01-01
      • 2012-05-17
      • 2013-04-17
      相关资源
      最近更新 更多