QWebSocketServer不接受来自Windows Firefox

时间:2017-03-31 14:40:24

标签: windows qt firefox ssl websocket

我有一个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机器上运行。但同样,只有少数试验,之后它反复和系统地失败。

我尝试了以下但没有成功:

  • 清除Firefox缓存。
  • 卸载并重新安装Firefox(我正在使用版本52)。
  • 运行Firefox Developer Edition。
  • 从其他用户帐户运行Firefox。
  • 重新启动服务器计算机(Ubuntu 16.04)。
  • 重新启动客户端计算机(Windows 10)。

当我在QWebSocketServer中删除安全模式时,一切都适用于非安全的WebSockets。

在服务器上,tcptrack显示Firefox连接,显示为“ESTABLISHED”,但QWebSocketServer显然没有收到任何内容(没有调用回调方法)。

似乎QWebSocketServer正在接收连接请求,但未能回答并调用任何错误回调方法(通过Qt信号)。

我的想法很少,无法理解问题所在。

我接下来可以尝试什么?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题:这个问题确实是Qt 5.8.0中的一个错误,如下所述:bugreports.qt.io/browse/QTBUG-57665。在讨论这个错误报告时提出的修复实际上解决了这个问题。