使用 Qt 进行长时间轮询

Long polling with Qt

本文关键字:长时间 Qt 使用      更新时间:2023-10-16

我需要从我的服务器获取实时信息到我的Qt程序。我实际上是通过创建与数据库的连接然后每秒获取数据来做到这一点的。

我正在寻找更好的解决方案:避免在无限循环中获取数据。

最好的解决方案是发出MySQL请求,并且仅在新数据到达数据库时才进行回调。就像 Ajax 长轮询连接一样,但在 c++ 中使用 Qt

不要每秒获取数据。有效的解决方案是Websocket技术。它是将数据推送到客户端的服务器,您可以从5.3版本开始将QWebSocket类与Qt一起使用。有一个很好的例子。

但是这个解决方案肯定要在服务器和客户端上实现。我最近实际上实现了这样的客户端功能,这对于Qt来说并不复杂,但解决方案取决于服务器的具体情况,我们每50秒后与服务器进行乒乓球,以防止套接字关闭。但这可能取决于具体的服务器端 websocket 实现。