使用 Qt 进行长时间轮询
Long polling with Qt
我需要从我的服务器获取实时信息到我的Qt程序。我实际上是通过创建与数据库的连接然后每秒获取数据来做到这一点的。
我正在寻找更好的解决方案:避免在无限循环中获取数据。
最好的解决方案是发出MySQL请求,并且仅在新数据到达数据库时才进行回调。就像 Ajax 长轮询连接一样,但在 c++ 中使用 Qt
不要每秒获取数据。有效的解决方案是Websocket技术。它是将数据推送到客户端的服务器,您可以从5.3版本开始将QWebSocket类与Qt一起使用。有一个很好的例子。
但是这个解决方案肯定要在服务器和客户端上实现。我最近实际上实现了这样的客户端功能,这对于Qt来说并不复杂,但解决方案取决于服务器的具体情况,我们每50秒后与服务器进行乒乓球,以防止套接字关闭。但这可能取决于具体的服务器端 websocket 实现。
相关文章:
- 使用Boost Interprocess创建托管共享内存需要很长时间
- SFML RenderWindow打开窗口需要很长时间
- QTime 如何加/减时间 QT/C++
- Kafka C++客户端需要很长时间才能收到消息
- 给定使用 C++ 或 C,我如何测量在 linux 下进行线程切换需要多长时间?可能吗?
- asio::read() 需要很长时间,使用 asio::write 没有问题
- 将线程锁定很长时间
- 正在等待在非阻塞文件描述符上长时间运行ioctl
- 即使长时间等待,C++线程也不会加入
- 连接() 在连接被拒绝时长时间挂起
- 为什么这段代码需要这么长时间才能用 g++ 编译?
- 如何在长时间运行的方法中等待信号?
- mbed 套接字连接需要很长时间
- Lambda 捕获此函数和长时间运行的函数
- std::fstream 需要很长时间才能将大数据写入.csv文件中
- 为什么与Java和Python相比,使用Cmake运行C++程序每次都需要这么长时间?
- Qt C++ "keine Rückmeldung" - 长时间计算期间 GUI 中的错误
- Qt 5.1.0 on Windows 使用 minGW 4.8,需要很长时间才能调试
- Qt静态构建在虚拟机(win7 32位)上需要很长时间
- 如何终止长时间运行的Qt线程