2015-10-15 142 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庫中,而不是在運行時動態加載它們。