問題タブ [qtwebsockets]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - QWebSockets のクライアント側で SSL 証明書の有効性を確認するためのベスト プラクティス
新しい QWebSockets を使用するアプリケーションを作成しようとしています。
これまでのところ、安全な Web ソケットを実装したいと考えていますが、例では、SSL エラーが安全でないとコメントされていても、SSL エラーを拒否するように指示されています。
私の質問は、クライアント側で自己署名証明書であっても、SSL証明書の制御をどのように処理すればよいですか? この場合のベストプラクティスは何ですか?
参考までに、ここにQWebSocket クラスによって発行される QSSLErrors へのリンクがあります。
残念ながら、webSocket.sslConfiguration().peerCertificate() は、出力時に空の値を返します。
c++ - Qt ローカル セキュア Web ソケット
WebSocket を介して Web ブラウザー (現在は Google Chrome) と通信する Qt アプリケーションに取り組んでいます。
安全なWebソケットを使用しようとするまで、すべてが正常に機能していました...
OpenSSL で発生した問題を解決できたので、Qt アプリケーションが動作するはずですが、動作していません。
私はVS2013とQt 5.3を使用しています。サーバーを起動するための次のコードがあります。
次の方法を使用して証明書ファイルを作成しました: https://developer.salesforce.com/blogs/developer-relations/2011/05/generating-valid-self-signed-certificates.html
ブラウザ側では、次のものしかありません。
残念ながら、試行するたびに、次の JS メッセージが表示されました。
ここのところ:
QSslSocket::supportsSsl ()
戻り値true
QSslSocket: cannot resolve XXX method
メッセージはありませんOpenSSL DLL がロードされ、VS2013 は次のメッセージを出力します。
'MyProject.exe' (Win32): 'I:\Sources\VS2013\x64\Release\ssleay32.dll' をロードしました。PDB ファイルが見つからないか、開くことができません。'PressAndListenQt.exe' (Win32): 'I:\Sources\VS2013\x64\Release\libeay32.dll' をロードしました。PDB ファイルが見つからないか、開くことができません。
何が間違っているのかを見つける方法がわからないので、どんな提案も受け付けています!
編集:(上記のリンクの代わりに)以下を使用して自己署名証明書を生成しようとしました:
今、私は別のエラーが発生します:
qt - Qt5 WebSockets テスト アプリがテスト サービスに接続しない
テストサービスへのqt websocketを開きたかったのですws://echo.websocket.org
が、エラー番号を読み取るためにコード内のスロットにQAbstractSocket::RemoteHostClosedError
信号を接続しているというエラーが表示され、ここerror(QAbstractSocket::SocketError socketError)
でそれを探します
私のコードは次のようになります
私はウェブソケットを初めて使用するので、どこに問題があるのか わかりません。誰でもアドバイスできますか?
qt - Qt websocket サーバーの例が機能しない
http://doc.qt.io/qt-5/qtwebsockets-echoserver-example.htmlの例を試して、単純な websocket サーバーを作成し、Google chrome ブラウザー経由で接続します。
サンプル ファイル、デフォルト ポート (1234) を使用してビルドしたところ、アプリケーションは「ポート 1234 でリッスンしている WebSocketServer」で正常に動作しています。しかし、サンプルhtmlに接続しようとすると、接続がありません。他のポートも試しました。
私の問題は、問題のある場所でデバッグを開始する方法がわからないことです。エラーなどは発生しません。問題の可能性はありますか?ありがとう!
c++ - QWebSocket はハンドシェイクを処理できません
を使用した WebSocket 接続の確立に問題がありQWebSocket
ます。Qt 5.6 とそのQWebSocket
実装を使用しています。サーバーは正しく動作し、WS v13プロトコルを使用していると確信しています。すべてのブラウザで正常に動作します。error
サーバーに接続しようとすると、QWebSocket がstateChanged
これらのメッセージを出力して通知します (errorString()
メソッドを使用して取得します)。
と表示されていますがConnection closed while reading header
、実際には接続は閉じられていません (サーバーがしばらくして websocket を介して追加のパケットを送信するため)。websocket.org のエコー テストでアプリケーションをテストしたところ、問題なく動作しました。しかし、両方の試行でパケットを盗聴しましたが、大きな違いは見つかりませんでした。
接続しようとしているサーバーでのパケット スニッフィングの結果:
との接続でのパケット スニッフィングの結果echo.websocket.org
:
問題を調査して解決するにはどうすればよいですか? サーバーにアクセスできません。
PS はい、私はQTBUG-40878を認識しています。これは Qt 5.3.1 に影響しますが、私は 5.6.0 を使用しており、Qt セットアップで明らかに修正されています。
qt - QTcpSocket からの QWebSocket
QTcpServer などを使用して小さな Web サーバーを作成しました。問題なく動作するので、もう少し進んで Qt の WebSocket 機能を実装したいと思いました。WebSocket サーバーが Web サーバーと同じポートで到達できるようにしたい (クライアント ネットワークの制限のため)。
私の WebSocket-Server は でアクセスできるはずなので、 QTcpSocket (のリクエストハンドラからアクセス可能)をQWebSocket/admin/socket
に「アップグレード」する方法が必要です。QWebSocket は、QWebSocketServerPrivate のこのアップグレード メソッドによって使用されるこのコンストラクターにこの機能を備えていますが、それはすべてプライベートであり、QWebSocketServer によって内部的にのみ使用されます。 /admin/socket
私が上で説明したことを達成する方法はありますか?独自の WebSocket ハンドラを実装する必要がありますか?