1

wssを使用して接続するためにプロキシサーバー構成でAsyncHttpClientを使用しようとしていますが、うまくいきません。私は async-http-client 1.7.5 と grizzly-websockets 2.2.13 を使ってきました 私の最初の試み

AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder()
        .setSSLContext(sc)
        .setProxyServer(
        new ProxyServer(Protocol.HTTP, "192.168.1.130", 3128))
        .build();
NettyWebSocket w = (NettyWebSocket)c.prepareGet("wss://192.168.1.124/atmosphere-chat/chat")
        .execute(handler).get();

デフォルトの netty 構成を使用しても機能しません。この試みは、少なくともプロキシを経由してリモート サーバーに接続しているように見えます。私がそこに得る例外は

java.lang.IllegalArgumentException: unsupported message type: class org.jboss.netty.handler.codec.http.websocketx.TextWebSocketFrame

グリズリーの使用に切り替えると

AsyncHttpClient c = new AsyncHttpClient(new GrizzlyAsyncHttpProvider(config), config);

物事は良く/悪くなります。この例では、grizzly が http プロキシ経由で接続動詞を送信できず、すぐに SSL 経由で通信を開始するように見えますが、これは失敗します。SSL を使用すると WebSocket 接続がプロキシ経由で機能する可能性が高くなるため、これは適切にサポートされる状況になると思います。]

Exception in thread "main" java.util.concurrent.ExecutionException: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?

私は何をすべきかの範囲外にいますか?

4

1 に答える 1

1

これは AHC のバグ ( https://github.com/sonatype/async-http-client/issues/131#issuecomment-7745037 ) であることが判明し、1.8.0 で修正されます。

于 2012-08-29T01:23:07.490 に答える