如何在Qt中修改QWebsocket定时器



我有一个简单的客户端应用程序(使用QWebSocket(想要连接到我的服务器应用程序(即QWebSocketServer(。

当我打开与关闭/不可用的 webSocketServer 的连接时,我的 webSocket 会在 30 秒后触发"断开连接"信号。

这很好,因为它可以帮助我了解服务器已关闭/不可用,因此我可以重试或警告用户该问题。

如果客户端和服务器之间的链接失败,也会发生同样的事情,即在写入(sendBinaryMessage(到webSocket后,导致断开连接的信号在30秒后触发。

我想知道QWebSocket中的默认计时器是什么以及如何修改它们?

我在哪里可以找到此类信息/文档?webSockets上的Qt文档根本没有提到这种行为!我应该阅读代码还是...?!

提前致谢

我怀疑这些计时器中的任何一个都是Qt的一部分;这些计时器作为底层操作系统TCP/IP实现的一部分而存在。如果远程端没有响应,等待连接超时的套接字最终会变坏。如果发送的数据在合理的时间后未得到确认,则相同。

然而,Qt异步执行所有操作,并利用信号和插槽在发生某些事情时通知您。这意味着,如果要缩短超时,最简单的方法是使用与您并行运行的QTimerQAbstractSocket,如果计时器在套接字发出响应信号之前超时,则可以采取适当的操作。

如果做不到这一点,可能有一些套接字选项允许您根据自己的喜好在TCP连接上设置各种超时。

来自 QWebSocket:

此类是在 QAbstractSocket 之后建模的。

QAbstractSocket反过来继承自QIODevice.

这些类的文档包含一些有关超时的信息。 具体来说,您可以看到此处和那里弹出默认值 30 秒。

另一个需要查看的地方是QObject的文档(QWebSocket继承了它(。也许通过覆盖QObject的计时器相关的虚拟函数,你可以以某种方式进入这些机制之间,也许可以改变超时。

很抱歉没有提供更多帮助。

相关内容

  • 没有找到相关文章

最新更新