2015-10-15 140 views
6

我正在运行龙卷风web服务器在linux centos 6.6上的安全websocket连接。我正在使用Qt/C++客户端通过打开一个像“wss://191.23.4.56/etr/job”这样的URL来使用QWebsocket进行连接。 我遇到错误, “此套件不支持SSL套接字” 这是什么错误?ssl套接字不支持错误

+0

有没有人有类似的错误?我的Qt客户端在Windos 7上运行。 – gaj

回答

4

错误消息“SSL套接字未在该平台所支持”QWebSocket::open()印刷当URL方案是wssQSslSocket::supportsSsl()返回false

静态成员函数QSslSocket::supportsSsl():如果此平台支持SSL

返回true;否则,返回false。 如果平台不支持SSL,套接字将在 连接阶段失败。

这是您的主要问题。现在我们需要找出为什么Qt认为该平台不支持SSL。

如果您将Qt作为二进制包下载,函数supportsSsl()会尝试动态加载所需的库libssllibcrypto

如果这些库无法加载,函数supportsSsl()返回false

libssl可能未安装在您的系统中。如果你可以在你的系统中找到库的二进制文件,但是它们没有被Qt加载,那么你的二进制文件libssl和/或libcrypto可能与二进制Qt不兼容。

为了避免这些问题,您可以构建自己的Qt。例如,有一个新的说明如何建立Qt-5.5.1。注意-openssl-linked配置开关的技巧。它可以将OpenSSL库集成到Qt5库中,而不是在运行时动态加载它们。