2015-10-15 10 views
6

Linux centos 6.6で安全なWebソケット接続のために竜巻Webサーバーを実行しています。私は "wss://191.23.4.56/etr/job"のようなURLを開いてQWebsocketを使って接続するためにQt/C++クライアントを使用しています。 のようなエラーが発生しましたこのプラットフォームではSSLソケットがサポートされていません " このエラーは何ですか? URLスキームはwssQSslSocket::supportsSsl()戻るfalseときsslソケットがサポートされていないエラー

+0

誰も似たようなエラーがありますか?私のQtクライアントはWindos 7で動作しています。 – gaj

答えて

4

「SSLソケットがこのプラットフォームでサポートされていません」というエラーメッセージがQWebSocket::open()で印刷されます。

静的メンバ関数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ライブラリに統合することができます。

関連する問題