【发布时间】: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