我有一个Qt应用程序,它使用来自Letsencrypt的证书以安全模式(SSL)运行QWebSocketServer。当我从Windows 10计算机上的Chrome或Edge连接时,一切正常。
我正在使用此工具进行测试:https://www.websocket.org/echo.html
但是当我从Windows 10中的Firefox连接时它不起作用。但是,当在同一台机器上从VMware上运行的Firefox连接时,它确实有效。当它不起作用时,我的意思是没有调用QWebSocketServer的回调:既没有newConnection,也没有acceptError,peerVerifyError,sslErrors或serverError(我实现了所有这些回调以尝试调试它)。另外,在websocket方面,我在几秒钟后收到一些错误消息:
ERROR: undefined
DISCONNECTED
我还尝试从不同的网络位置连接我的Windows 10计算机。它奏效了!但只有一段时间。经过多次试验,它反复而系统地失败了。
此外,我尝试从另一台Windows 10机器上运行。但同样,只有少数试验,之后它反复和系统地失败。
我尝试了以下但没有成功:
当我在QWebSocketServer中删除安全模式时,一切都适用于非安全的WebSockets。
在服务器上,tcptrack显示Firefox连接,显示为“ESTABLISHED”,但QWebSocketServer显然没有收到任何内容(没有调用回调方法)。
似乎QWebSocketServer正在接收连接请求,但未能回答并调用任何错误回调方法(通过Qt信号)。
我的想法很少,无法理解问题所在。
我接下来可以尝试什么?
答案 0 :(得分:0)
回答我自己的问题:这个问题确实是Qt 5.8.0中的一个错误,如下所述:bugreports.qt.io/browse/QTBUG-57665。在讨论这个错误报告时提出的修复实际上解决了这个问题。