2012-04-10 69 views
1

我正尝试使用Poco C++ lib的WebSocket类在我的服务器应用程序中构建一个漂亮的干净接口。Poco C++ Websocket服务器 - 阻止它在60秒后关闭

我的问题是,使用例如WebSocket的服务器应用中,插座60秒后关闭到客户端 - 我需要它持续更长的时间(想想+ 15分钟......)

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

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

+0

如果有任何Ping功能发送给客户端? WebSockets协议它自己有PING和PONG OpCodes。图书馆可能会在不活动之后断开客户端连接。 – moka 2012-04-10 14:22:05

+0

我确实认为这可能是这种情况 - 在这种情况下,我需要找到一种方法来防止这种行为。 我打算将WebSocket用于移动客户端 - 我想将流量限制在最低限度以节省电池寿命。 – justacodemonkey 2012-04-10 14:30:55

+0

以及在Poco中为WebSocket检查函数setKeepAlive。 问题:您是使用浏览器连接服务器,还是使用Poco客户端WebSocket连接另一个Poco应用程序? 基于文档,Ping和Pong必须由应用程序开发人员处理。所以它不是由图书馆自己处理的。 – moka 2012-04-10 14:31:13

回答

0

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

相关问题