Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Poco C++;Websocket服务器-防止它在60秒后关闭_C++_Websocket_Poco Libraries - Fatal编程技术网

C++ Poco C++;Websocket服务器-防止它在60秒后关闭

C++ Poco C++;Websocket服务器-防止它在60秒后关闭,c++,websocket,poco-libraries,C++,Websocket,Poco Libraries,我尝试使用POCO C++ ++的WebSoC类类来构建一个干净的接口到我的服务器应用程序。 我的问题是,使用示例WebSocket服务器应用程序,套接字在60秒后关闭到客户端-我需要它持续更长的时间(想想+15分钟…) 我已经尝试将HTTP层的超时设置为10分钟(3600秒),这对行为没有影响 不幸的是,Poco示例和文档有点单薄,所以我希望这里的人能够提供帮助。可以使用 ws.setReceiveTimeout(Poco::Timespan(天、小时、分钟、秒、微秒)) 超时可能是由于线程(

我尝试使用POCO C++ ++的WebSoC类类来构建一个干净的接口到我的服务器应用程序。 我的问题是,使用示例WebSocket服务器应用程序,套接字在60秒后关闭到客户端-我需要它持续更长的时间(想想+15分钟…)

我已经尝试将HTTP层的超时设置为10分钟(3600秒),这对行为没有影响


不幸的是,Poco示例和文档有点单薄,所以我希望这里的人能够提供帮助。

可以使用

ws.setReceiveTimeout(Poco::Timespan(天、小时、分钟、秒、微秒))


超时可能是由于线程(池)而不是WebSocket本身造成的。您可能希望通过其构造函数设置不同的空闲时间。请参见

连接关闭的原因是在中的堆栈上创建了WebSocket。每个请求都会调用处理程序,并且处理时间很短。为了让它持续更长时间,您应该在堆上创建它,并在工厂中保留对它的引用(或其他一些长期存在的对象),以便在处理HTTP请求后它保持活动状态。

是否有任何Ping函数发送到客户端?WebSockets协议本身有乒乓和乒乓操作码。在一些不活动之后,库可能会断开客户端的连接。我确实认为可能是这种情况——在这种情况下,我需要找到一种方法来防止这种行为。我计划将WebSocket用于移动客户端,我希望将通信量限制在最低限度,以节省电池寿命。同时检查Poco中WebSocket的函数setKeepAlive。问题:您是使用浏览器连接到服务器,还是使用Poco客户端WebSocket连接到另一个Poco应用程序?根据文档,乒乓球必须由应用程序开发人员处理。因此,它不是由库it本身处理的。我还将查看setKeepAlive。
ws.setReceiveTimeout(Poco::Timespan())将其设置为无穷大