問題タブ [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.
request - Opera 12 での WebSocket ハンドシェイクの失敗 (不正なリクエスト)
私は現在、学士論文の作業を開始しており、最近、node.js と webSocket の使用を「掘り下げ」始めました。私の webSocket サーバーは、Firefox 15.0 と Chrome 21.0.1180.89 m でアクセスすると問題なく動作します。Opera 12.02 では、クライアント サーバー ハンドシェイクに問題があるようです。これは、Opera のエラー コンソールに次のように表示されます。
面白いことに、Dragonfly コンソールのネットワーク ログのどこにもこのエラーが見つかりません。Web サイトにアクセスするときに要求されるすべてのフィールド (index.html、client.js など) が検出され、本来あるべき状態で提供されます (HTTP ステータス コード 200 OK)。また、私のサーバーが返すステータス コードは 200、404、および 500 だけなので、これは webSocket 自体から来ているように見えます。
はい、webSocket は Opera で有効になっています...何が問題なのかわかりません
どんな助けでも本当に感謝します:)
編集:これはこれまでの私のコードなので、サーバーが送信するヘッダーと、client.js で webSocket 接続を作成する方法を確認できます。
サーバー.js:
client.js:
java - Google GCM が Java SSL サーバーの SSL ハンドシェイクを実行できない
最近、Google の Cloud Messaging for Android を知り、自分のアプリを統合して使用したいと考えました。プロジェクトの Android 側が機能し、アプリがサーバーに正しく登録されています。問題は、サーバーが GCM サーバーを認証できないように見えるため、GCM サーバーと通信できないことです。これが私が意味することです:
現在、私のサーバーは、キーストアとトラストストアを備えた単純な Java ベースの SSL サーバーです。トラストストアにはクライアントのキー (つまりアプリのキー) が含まれており、その逆も同様であり、クライアント/サーバーは SSL を介して問題なく相互に通信できます。アプリにメッセージを送信するために使用しているコードは次のとおりです。
次の例外が発生します。
サーバーを起動するときに、トラスト/キーストアの名前とそれらのパスワードを渡してロードし、クライアントとの通信に使用できるようにします。問題は、現在トラストストアにクライアントのキーしか含まれていないため、サーバーはクライアントとのみ通信でき、他の誰とも通信できないことが問題であると思われます。これは正しいですか?もしそうなら、GCM証明書をトラストストアなどに追加する方法を知っている人はいますか?
どうもありがとう、どんな助けも大歓迎です:)
PSサーバーにトラストストアをロードする前に、クライアントにメッセージを送信しようとしましたが、アプリはそれを正常に受信しました。
serial-port - シリアルポート:HWハンドシェイクは送信側でのみオンになり、送信は引き続き機能します
DB-9シリアルポートを介してデータを送信していますが、HW CTS/RTSハンドシェイクを使用したいと思います。奇妙なことに、受信側でハンドシェイクをオフにしても、送信側はデータを送信し続けます。送信者はCTS信号が来るのを待つ必要があるため、これは私には意味がありません。ハンドシェイクがオフになっているため、受信者は明らかにCTS信号を送信するべきではありません。
ループバックケーブルだけでなく、完全なハンドシェイクヌルモデムケーブルがあることをすでに確認しました。
これは正常な動作ですか、それとも私の考えに何か問題がありますか?私はすでにこれをさまざまなプログラミング言語で試しました。
ssl - ActiveMQ サーバーとの SSL ハンドシェイクで、SilverTunnel netlib 経由で接続するときに NullPointerException が発生する
概要
TCP 経由の ActiveMQ への接続は、netlib の有無にかかわらず正常に機能します。SSL
経由の接続は、 netlib がなくても正常に機能しますが、 netlibでは失敗します。
注: apache-activemq-5.6.0とsilvertunnel.org_netlib-0.14-betaを使用しています。
この問題は、netlib の tcpipNetLayer または torNetLayer を使用している場合に発生します。ただし、単純にするために、ここでは tcpipNetLayer のケースのみを考慮します。
ところで、SSL + netlib は HornetQ メッセージング サーバー (SSL 認証の実装が異なる) で問題なく動作しましたが、HornetQ には問題があったため、ActiveMQ を使用してみました。
便宜上、1 つのコンシューマーと 2 つの異なるプロデューサーを使用する簡単なテスト ケースを作成しました。
- プロデューサーは netlib なしで接続します - 正常に動作します。
- producer-tcpipは tcpipNetLayer を使用して neltib に接続します - 次のエラーが発生します:
ActiveMQ の SSL デバッグがオンになっていると、producer-tcpip プログラムはコンソールに次のエラー メッセージを出力し、ハングします。
Producer-tcpip プログラムが log4j メッセージを生成するため、これは SSL ハンドシェイクの途中です。
次に、producer-tcpip プログラムが (たとえば ctrl+C で) 強制終了されると、activemq.log は次のように報告します。
何がこれを引き起こしているのか、どうすれば解決できるのかわかりません。誰でも助けることができますか?
問題を再現する手順 (15 分以内):
テストケースをダウンロードする
最新の ActiveMQ をテスト ディレクトリにダウンロードします。
conf/activemq.xml を編集して ssl を受け入れる
transportConnectors エントリを次の行に置き換えます (SSL を有効にするため)。
サーバーを起動
ログ出力を表示する
別のコンソールを開き、cd でtesting-AMQ-Netlib-SSLディレクトリに移動します
最新の SilverTunnel netlib をテスト ディレクトリにダウンロードします。
ソースコードを別々のディレクトリにある 3 つの実行可能な jar ファイルにコンパイルします
コンシューマーを実行する
別のコンソールを開き、cd でtesting-AMQ-Netlib-SSL/producerディレクトリに移動します
プロデューサーを実行する
動作することを確認するために少し実行してから、ctrl + C を押してプロデューサーを強制終了します。
プロデューサー-tcpip を実行します
NullPointerException で停止したことを確認するために少し実行してから、ctrl+C を押してプロデューサー-tcpip を強制終了します。
Producer-tcpip の出力のデバッグ メッセージに注意してください。
また、activemq.log の下部に表示されるエラー メッセージに注目するか (最初のコンソール ウィンドウの末尾の出力を参照)、現在のプロンプトで次のように入力します。
ご協力いただきありがとうございます!
haskell - haskell での Gmail TLS ハンシェイクの失敗
gmail 経由でメールを送信するための小さなスクリプトを作成しようとしています。
gmail に接続できますが、hanshake しようとすると失敗します。
握手をするための指針はありますか?
コードは次のとおりです。
そして、ここにエラーがあります:
HandshakeFailed (Error_Packet_Parsing "読み取りに失敗しました: 無効なヘッダー タイプ: 50\nFrom:\theader\n\n")
security - クライアントの hello が sslv2 の場合、ハンドシェイク プロトコルが sslv3 である理由
Windows XP SP3 (つまり v6) で wininet を使用して接続しようとしているクライアント アプリから正常な SSL 接続を取得する際に問題が発生しています。クライアントの hello がおかしいように見えます。hello のバージョンが SSL 2.0 であるのに、ハンドシェークのバージョンが SSL 3.0 である理由を教えてください。wininet を使用してアプリから誤ってコーディングされたものはありますか?
facebook - Ubuntu での OpenSSL 1.0.1 ハンドシェイクの回避策は?
Ubuntu 12.04 の OpenSSL 1.0.1 で重大なバグに遭遇しました。
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=665452
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=666051 <- 2012 年 10 月 3 日付け!
その要点は、一部のサーバーには接続できるが、他のサーバーには接続できないということです。Google 作品への接続:
openssl s_client -connect mail.google.com:443 -debug -state -msg -CAfile /etc/ssl/certs/ca-certificates.crt
ただし、Facebook に接続しても、次のことはできません。
openssl s_client -connect graph.facebook.com:443 -debug -state -msg -CAfile /etc/ssl/certs/ca-certificates.crt -cipher SRP-AES-256-CBC-SHA
クライアントがhelloバッファを送信した後にFacebook接続がハングし、サーバーのhello応答を受信しないか、認識できる暗号を渡すとエラーコードが返されます。これは、-tls1 と -ssl3 の両方で発生します。考えられるopensslのすべてのパラメーターを試しました。
apt-cache showpkg openssl
また、考えられるすべてのパラメーターをcurlで試しましたが、内部でopensslを使用しているため、成功しませんでした。
私は、Ubuntu が安全な接続を確立できないことを懸念しています (驚くべき声明だと思います)。この問題に対して 2 日間しっかりと頭を悩ませた後、私は基本的に、この時点で誰かが回避策を知っていることを祈っています。OpenSSL 1.0.0 にダウングレードするか、代わりに gnutls-dev で libcurl4-dev を使用することを検討しています。どちらのソリューションも、口の中に腐った味が残ります。ご協力いただきありがとうございます。
PS この作業はすべて、私のサーバーが外部の https REST API とやり取りできるようにするためのものです。これは、今日の Web サーバーの基本的な要件であり、言い訳にはならないと考えています。
更新:これは暗号を渡さない私の出力です。-CAfile を渡すかどうかは関係ありません。
openssl s_client -connect graph.facebook.com:443 -debug -state -msg -CAfile /etc/ssl/certs/ca-certificates.crt
node.js - socket.ioでhandshakeDataと一緒にカスタムデータを送信しますか?
したがって、バックエンドとしてsocket.ioを使用し、フロントエンドとして通常のjavascriptを使用してノードjsを実行するアプリケーションがあります。私のアプリケーションにはログインシステムがあり、現在、クライアントは接続されるとすぐにログインデータを送信します。
ログインデータをhandshakeDataと一緒に送信すると、接続中に(接続を確立した後ではなく)ユーザーに直接ログインさせ、ログインデータが無効な場合に認証を拒否することができます。
追加のデータをhandshakeDataのヘッダー部分に配置するのが最善だと思います。それで、どうすればそれができるのでしょうか。(可能であればsocket.ioを変更する必要はありませんが、それが私がそれと一緒に暮らすことができる唯一の方法である場合)
python - トレントクライアント:ハンドシェイクメッセージをピアに送信する
ピアリストを取得し、ピアへのtcp接続を確立したところ、メッセージをハンドシェイクしようとしましたが、応答しないようです。
これはコードでの私のメッセージです:
self.getInfoHash(torrentCont)は、トレントファイルからの生のハッシュです。
これは私が送信している実際のものです:
私が間違っていることについて何か提案はありますか?
ios - Socket.io セルラー ハンドシェイク iOS タイムアウト
標準の HTTP NSURLConnection 経由で socket.io ハンドシェイク呼び出しを行っています。奇妙なことに、Wifi 経由で接続している場合にのみ応答が返されます。それ以外の場合は、接続がタイムアウトします。ソケットは Wifi 経由では機能せず、セルラー接続には xhr ポーリングを使用する必要があることは理解していますが、Wifi 経由でのみ機能する HTTP 接続は意味がありません。このため、まったく接続できないため、ポーリングすることさえできません....
何かご意見は?