我正在尝试使用 Poco C++ lib 的 WebSocket 类在我的服务器应用程序中构建一个干净整洁的接口。
我的问题是使用示例 WebSocket 服务器应用程序,套接字在 60 秒后对客户端关闭 - 我需要它持续更长时间(想想 +15 分钟......)
我尝试将 HTTP 层的超时设置为 10 分钟(3600 秒),这对行为没有影响。
不幸的是,Poco 示例和文档有点薄 - 所以我希望这里有人可以提供帮助。
我正在尝试使用 Poco C++ lib 的 WebSocket 类在我的服务器应用程序中构建一个干净整洁的接口。
我的问题是使用示例 WebSocket 服务器应用程序,套接字在 60 秒后对客户端关闭 - 我需要它持续更长时间(想想 +15 分钟......)
我尝试将 HTTP 层的超时设置为 10 分钟(3600 秒),这对行为没有影响。
不幸的是,Poco 示例和文档有点薄 - 所以我希望这里有人可以提供帮助。
可以使用设置超时
ws.setReceiveTimeout(Poco::Timespan(days, hours, minutes, seconds, microseconds));
超时可能是由于线程(池)而不是 WebSocket 本身。您可能希望通过其构造函数设置不同的空闲时间。请参阅http://pocoproject.org/docs/Poco.ThreadPool.html
关闭连接的原因是因为 WebSocket 是在handler的堆栈上创建的。每个请求都会调用处理程序,并且是短暂的。为了让它持续更长时间,您应该在堆上创建它并在工厂(或其他一些长期存在的对象)中保持对它的引用,以便在处理 HTTP 请求后它仍然存在。