問題タブ [handshake]

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.

0 投票する
1 に答える
1742 参照

openssl - SSL_read()のときにSSL_ERROR_WANT_WRITEを処理する必要がありますか?

私はopensslプログラミングチュートリアルを読んでいます。

単一の接続の操作でサーバーアプリをブロックさせることはできないため、
非ブロックソケットを使用します。

sslハンドシェイクはssl_acceptとssl_connectで行われているようですが、
これはブロックされる可能性があるため、ssl_accept呼び出しの前にソケットを非ブロックに設定する必要があります。

チュートリアルドキュメントには、SSLの再ハンドシェイクがいつでも発生する可能性があるため、SSL_readでSSL_ERROR_WANT_WRITE(およびもちろんSSL_ERROR_WANT_READ)を処理する必要があると書かれています。
そして、同じ理由でSSL_writeのSSL_ERROR_WANT_READ。

ドキュメントから、

再ハンドシェイクを試みている場合はWANT_WRITEを取得し、その再ハンドシェイク中に書き込みをブロックします。

ソケットが書き込み可能になるのを待つ必要がありますが、書き込み可能になったら読み取りを再開します

私は「再」ハンドシェイクの部分で混乱しています。
ssl状態を保存して再利用する予定はありません(これはセッション再開と呼ばれますか?)最初のハンドシェイクの後、同じ接続のハンドシェイクを処理する必要はありません。

セッション再開を使用しない場合でも、SSL_readでのWANT_WRITEについて心配する必要があるのか​​、またはその逆であるのか疑問に思います。

ありがとうございました

0 投票する
1 に答える
2065 参照

iphone - バックグラウンドでの適用中にシェイクジェスチャを検出する方法は?

現在、音楽プレーヤーアプリを開発中ですが、iPodアプリケーションと同様に、シェイクジェスチャで曲をシャッフルしたいと思います。

私はAppleが推奨するようなモーションメソッドを実装しており、フォアグラウンドではすべてが正常に機能します。

しかし、これらのメソッドをバックグラウンドから呼び出す方法がわかりません。私はインターネット全体を見てきましたが、これについてのスレッドはありません。

まず最初に:それは可能ですか?

ありがとう!

0 投票する
1 に答える
1819 参照

jsp - 致命的なアラートを受信しました:JSPページのhandshake_failureエラー

許可されたSSL接続に奇妙な問題があります。まず、許可されたsslを使用して外部サーバーに接続するJavaクラスを作成しました。私はこのクラスをコマンドラインで実行しましたが、正常に動作し、外部サーバーから目的の結果を取得します。このクラスをJSPページで使用した後。再起動後、TomcatJSPページでも目的の結果が得られます。しかし、10〜15回のリクエストの後、JSPページで次のエラーが発生します:「javax.net.ssl.SSLHandshakeException:致命的なアラートを受信しました:handshake_failure」。JSPページでこれ以上望ましい結果はありません。

これがJavaクラスコードのメソッドです。

JSPページからの呼び出し:<%fsb fsb = new fsb();
out.println(fsb.TransHttpsAuth( "https:// ext_server"、 "prameters"、 "GET"、 "jks_path"、 "password")); %>

Tomcatバージョン:6.0.32

Javaバージョン:1.6.0_21

0 投票する
2 に答える
911 参照

google-chrome - Chromium に新しい WebSocket ハンドシェイクを送信させるにはどうすればよいですか?

Chromium でこのコード変更に遭遇しました。Chromium は両方のハンドシェイク バージョンをサポートするようになりましたが、これはコードで確認されているようです。ウィキペディアの 2 番目のバージョン(draft-ietf-hybi-thewebsocketprotocol-06) を意味します。

ただし、サーバーに接続すると、次のヘッダーを含む古いバージョンしか取得できません。

ただし、以下を含むリクエストとなる新しいバージョンではありません:

ここで何が欠けていますか?最新のナイトリー ビルドをダウンロードしましたが、2 週間以上前に含まれていたので、それが原因ではないと思います。

WebSocket に新しいハンドシェイク バージョンを送信させるにはどうすればよいですか?

0 投票する
2 に答える
3339 参照

android - 揺れイベントを検出する安定した方法はありますか?

加速度計を使用して揺れイベントを検出しようとしました。携帯電話を連続して振ると、加速度の値の差がかなり安定することがわかりました。しかし、電話を回転させると、常に値が大きく変化します (値は通常、「回転せずに振る」よりも大きくなります)。回転イベントではなく、揺れイベントに注目したい。問題を解決する方法はありますか?

これがshaing検出のための私のコードです

加速度計を使用して回転イベントを無視することは可能ですか? または、方向の変更を取得して、sumAcc で計算を行う必要がありますか?

0 投票する
1 に答える
17011 参照

ssl - SSLトラブル(openssl)

SSLプロトコルを介してサーバーに接続するように構成する必要があります。サーバー所有者から2つのファイル(CAルート証明書(ca.pem)とテスト証明書要求(test.csrファイル))を取得しました。

私はopenssls_connectユーティリティを介して接続をテストしようとしていますが、奇妙な結果が得られます(xxx-マスクされた値):


しかし、ハンドシェイクアラートと印刷証明書データの後、私は見ます:


リターンコードが0(ok)であることを確認するとはどういう意味ですか?ハンドシェイクエラー/アラートが発生した場合、どのように可能ですか?

0 投票する
2 に答える
2461 参照

python - PythonのSSL:証明書をサーバーに送信しないのはなぜですか?

SSL で保護された Web ページから情報を取得するソフトウェアを作成しています。以下は、サーバーに接続するために使用するコードです。

ただし、これは機能しません。「ハンドシェイクアラートが失敗しました」というメッセージで例外をスローします。スクリプトから出てくるいくつかの TCP パケットと Internet Explorer からの対応するパケットをキャプチャしたところ、IE が正常に送信している間、スクリプトが証明書をまったく送信しないことがわかりました (サーバーは「致命的: 証明書が提供されていません」のようなものを返します)。私が知る限り、ファイル ca.cer は x509 証明書です (「-----BEGIN CERTIFICATE-----」で始まります)。

私を助けて、私が間違っていることを教えてください。私が提供した情報が少ない場合は、お知らせください。

よろしく

0 投票する
1 に答える
829 参照

html - node.jswebsocketハンドシェイクdraft-hixie-thewebsocketprotocol-76が機能しません!

php websocketサーバーをnode.jsにページングしていますが、ハンドシェイクが失敗する理由がわかりません。これが私のコードです:

誰かがアイデアを持っているなら、私は面白がるでしょう:)ハンドシェイクメソッドのv76仕様で与えられた例でこのコードを試してみました。

0 投票する
1 に答える
1893 参照

sockets - ハンドシェイクの直後にWebSocketメッセージを送信する

WebSocketnode.jsでサーバーを構築しています。クライアントが接続したら、すぐにメッセージを送信したいと思います。

ただし、ハンドシェイクが完了した直後に送信すると、Chromeでエラーが発生します。

ハンドシェイクの100ミリ秒後にaを使用しsetTimeoutてメッセージを送信すると機能しますが、この手法を使用して10ミリ秒を使用すると機能しません。

ハンドシェイクとメッセージは、それらの間の時間間隔が短い場合に一緒に送信されると追加されるように見えます(ただし、Chromeで生のトラフィックを表示する方法がわからないため、わかりませんWebSocket-誰かが好きならそれも聞くために)。

サーバーが100ミリ秒待機するのは望ましくありません。これは、サーバーがクライアントにとって確かに目立つためです。さらに、サーバーは優れたソリューションというよりは、汚いトリックのように見えます。

ハンドシェイクの直後にメッセージを送信するにはどうすればよいですか?

0 投票する
1 に答える
1947 参照

javascript - メッセージを失うことなく、ハンドシェイク中に Websocket 送信を処理する

次の動作を実現したいと思います。Websocket 経由でメッセージを送信する関数をトリガーするボタンがクライアント側にあるとします。この関数が初めて呼び出されると、WebSocket インスタンスが作成され、その後の呼び出しで使用されます。

WebSocket インスタンスの作成はノンブロッキングです。コンストラクターはすぐに WebSocket オブジェクトを返し、バックグラウンドでハンドシェイクを開始します。接続が成功すると、onopen コールバックがトリガーされます。

2 番目の呼び出しが着信し、websocket がまだハンドシェイクを実行している場合 (たとえば、ユーザーがボタンをダブルクリックした場合) に問題が発生します。Websocket がハンドシェイクを完了すると、すべてのメッセージがキューに入れられて送信される必要があります。

次のコードでは、jQuery とカスタム イベントを使用して、ハンドシェイク中に受信したすべてのメッセージを収集します。

スター付きの行の条件が true として評価される可能性があり、その瞬間に Websocket が OPEN 状態に移行すると、onopen コールバックが実行され、その後でのみ現在のメッセージがキューに追加され、handshakeComplete イベントを待機します。これにより、メッセージが失われます。

私はこれを避けたいと思います。アイデア、コメント、または提案をいただければ幸いです。