这个问题对应于这个QtWebSockets实现。
我正在尝试将 websockets 服务器功能包含在一个更大的基于 qt 的项目中。
我已经克隆了上面的存储库并构建了库以及示例应用程序(发布模式)。在这些例子中,有一个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机器上作为virtualbox来宾运行。
- Qt5.2(64位)
我认为这与 virtualbox 网络设置有关,所以我在主机操作系统(win7、64 位)上重复了上面的整个事情。我得到相同的结果。
溴, 萨博尔茨
这个问题在Qt 5.4中不再发生。根据上面的评论,这是Qt中的一个错误,现在似乎已修复,因为在我的环境中,echo服务器和echoclient工作得很好。
我的环境:
- Ubuntu 14.04(64位)在win7机器上作为虚拟盒子来宾运行。
- Qt5.4(32位)
因此,我建议将这个问题标记为已回答。