HTTPS/WSS経由でInternet Explorer 9でSocket.ioのフラッシュソケットを動作させようとしています。フラッシュソケットはHTTP上で動作しますが、HTTPSは私たちに問題を与えています。私たちはsocket.ioバージョン0.8.7とsocket.io-clientバージョン0.9.1-1を使用しています。Socket.ioのs3_pkt.cのHTTPSエラー "data length too long"
Websocketサーバーは、ポート443でSSL経由で実行されています.WebSocketMainInsecure.swfファイルの場所(これらはクロスドメインのws要求です)が正しい場所に指定されており、ファイルをロードしていますHTTPSに埋め込まれたswfobjectの中にあります。
EC2インスタンスのセキュリティグループにポート843を開き、クロスオリジンポリシーファイルがHTTP経由で正常にレンダリングされています。 HTTPSでレンダリングされないようです(ChromeはSSL接続エラーをスローします)。
WebsocketMainInsecure.swfファイルの2つのバージョンを試しました。最初は、これはWebSocket.__flash.setCallerUrl(location.href)
線にエラーSCRIPT16389: Unspecified error.
をスローライン
Security.allowInsecureDomain("*");
を含まないWebsocketMainInsecure.asのオフ構築されSocket.io、によって提供されるファイルです。
私たちは、SWFファイルがHTTPS要求を許可されなかったので、それがあった考え出したので、私たちは、このレポで見つかったものでWebSocketMainInsecure.swfファイルを置き換える:それはActionScriptで
Security.allowInsecureDomain("*");
行が含まれているためコード。これを使用すると、flashsocket接続が切断され、無限ループで再接続されていることがわかりました。エラーを、transportプロトタイプのonSocketError関数のsocket.ioライブラリにあるtransport.jsファイルまで追跡しました。これは、エラーがスローされます:
[Error: 139662382290912:error:1408F092:SSL routines:SSL3_GET_RECORD:data length too long:s3_pkt.c:503:]
私たちも、バージョン0.9.6にsocket.ioとsocket.io-クライアントの両方を更新しようと、我々はまだAccess is denied
エラーを得ました。
このエラーはデバッグするのが非常に難しく、現在ではフラッシュソケットを動作させる方法が失われています。古いバージョンのsocket.ioを使用する必要があるかどうか、またはポリシーファイルサーバーがHTTPS要求を受け入れないか、WebSocketMainInsecure.swfファイルがHTTPS要求を受け入れないことが考えられます。 socket-js github repoは、socket.io-clientが期待するものに関連して構築されました。
これは、別のフォーラムでよく聞かれるかもしれません。 。 。 ServerFaultは良い賭けかもしれない。ここに[同様のエラーについての質問](http://serverfault.com/questions/402152/error-in-openssl-s-client-data-length-is-too-long)があります。あなたには手がかりがあります。 – iND
@iNDその質問を見たが、それが私を助けるかどうかはわからない、どう思いますか? – user730569
私は、サーバーのやりとりのデバッグに関する知識が非常に限られていますが、これはその分野の専門家が多いフォーラムではないかもしれません。より焦点を絞ったフォーラムでより良い回答を得ることができます。ただし、これはFlashの問題ではない可能性があります。エラーmsgは同じで、行番号はエラー行から1つだけ離れているので、LDAP関連情報を無視すると解決策があると思います。 – iND