2017-12-08 10 views
0

WebSocket Server(QWebSocketServer)を使用するQtでアプリケーションを開発しました。私はLinuxでこれを行い、すべてうまくいったが、Mac OSでコードを実行したときに、Chromeのウェブページからサーバーに接続できなかった。Qt/OSX WebSocketオープンハンドシェイクタイムアウト

接続に時間がかかり、数分後にChromeからWebSocket opening handshake timed outが届きました。

は最後に、私は基本に戻って、Qtの例を試みた:全く同じ

http://doc.qt.io/qt-5/qtwebsockets-sslechoserver-example.html

を。 SSLを削除しても、同じポートで、それが動作する非セキュアWebSocketをを使用した後

:編集

MacのChromeは、リモート(Mac以外)のコンピュータ上の安全なQt WebSocketサーバーにアクセスできますが、リモートコンピュータのChromeはMacに接続中にタイムアウトします(安全に) Qt QWebSocketServerの例を参照してください。 LinuxとWindowsの両方でうまく動作します。

がなされている接続は、(アプリケーションが実行されていないか、閉じている場合、Webブラウザが即座に失敗したので)ですが、何らかの理由でそれが完了していません。

これはどういう考えですか、それを追跡しようとすることができますか?

ありがとうございました!

+0

Macファイアウォールはオンになっていますか? –

+0

いいえ - 私は最初にそれを確認しました:)実際にnetcatで接続することはできますが、送信されたものには何の応答もないようです。 –

答えて

0

ここでの問題は、MacOSの権限システムとのやりとりのようです。

初めてアプリケーションを実行して接続すると、キーチェーンにアクセスする権限を求めるウィンドウが表示されます(証明書をインストールすると思います)。

あなたはその時点でダイアログを閉じた場合は、それが戻ってこないだろう、何のQtWebSocketServerベースのプログラムは、あなたのリブートまで、それ以降機能しないでしょうね!