【问题标题】:Using QtWebSockets - can't connect to echoserver使用 QtWebSockets - 无法连接到 echoserver
【发布时间】:2014-02-16 17:40:55
【问题描述】:

这个问题对应于这个QtWebSockets 实现。

我正在尝试在一个更大的基于 qt 的项目中包含 websockets 服务器功能。

我已经克隆了上面的 repo 并构建了库以及示例应用程序(发布模式)。在这些示例中,有一个echoserver 和一个echoclient。构建后我启动echoserver,这似乎是成功的(在终端上我看到:Echoserver listening on port 1234)。然后我启动echoclient,它立即退出(控制台上没有打印输出)。服务器控制台没有显示任何检测连接尝试的迹象。服务器监听0.0.0.0:1234(检查netstat)。客户端尝试连接"ws://localhost:1234/"

我修改了echoclient 示例以连接到echo.websocket.org 并重建它。启动客户端后,它连接成功并回显发送的消息。

我创建了一个简单的 html 文件,其中一个 websocket 客户端尝试连接到echoserver 并用浏览器打开它。这再次无法连接到服务器(与 echo.websocket.org 一起使用)。

环境:

  • Ubuntu 13.10(64 位)在 win7 机器上作为虚拟机来宾运行。
  • Qt5.2(64位)

我认为这与 virtualbox 网络设置有关,所以我在主机操作系统(win7、64 位)上重复了上面的整个过程。我得到了相同的结果。

兄弟, 萨博尔奇

【问题讨论】:

  • 我认为你发现了一个错误。我已经对此进行了测试,并且由于“远程主机关闭了连接”,回显客户端立即退出。将客户端连接到 echo.websocket.org 确实有效。注意补丁:-)
  • 该错误已解决。我正在等待重新配置 Qt CI 配置以合并补丁。我想下周的某个地方。如果您想暂时解决该错误:在文件 qwebsocketserver_p.cpp 的第 77 行将 SecureMode 更改为 NonSecureMode。
  • 感谢您这么快地调查此事!我尝试了推荐的修复方法,但这对我的情况没有帮助。让我们等待“官方”补丁。

标签: c++ qt websocket socket.io qt5


【解决方案1】:

这个问题在 Qt 5.4 中不再发生。根据上面的 cmets,这是 Qt 中的一个错误,现在似乎已修复,因为在我的环境中,echoserver 和 echoclient 工作得很好。

我的环境:

  • Ubuntu 14.04(64 位)在 win7 机器上作为 virtualbox 来宾运行。
  • Qt5.4(32位)

因此我建议将此问题标记为已回答。

【讨论】:

    猜你喜欢
    • 2019-12-02
    • 2017-12-08
    • 1970-01-01
    • 2012-11-04
    • 2021-04-01
    • 2021-06-08
    • 2018-02-04
    • 2013-09-29
    • 2015-11-17
    相关资源
    最近更新 更多