2

ここで説明されているように、Netty を使用する可能性はありますか: http://docs.oracle.com/javase/6/docs/technotes/guides/net/proxies.html

たぶん、次のようないくつかのオプションがあります。

System.getProperties().put("socksProxySet","true");
System.getProperties().put("socksProxyHost","127.0.0.1");
System.getProperties().put("socksProxyPort","1080");

試してみましたが、netty はプロパティを取得せず、socks プロキシ経由でリクエストをプロキシしません。

ChannelFuture future =
                    bootstrap.connect(
                            new InetSocketAddress(uri.getHost(), uri.getPort()));

私の netty クライアントは、websocket 経由で netty サーバーに接続します。

Java NIO はプロキシをサポートしていません。Netty は Java NIO に基づいています。そのような可能性が存在する/nettyに追加できることを願っていました。

ありがとうございました!

4

2 に答える 2

2

とてもシンプルです。独自のハンドラーでリスナーを作成する必要があります。例はここにあります: https://github.com/shenfeng/async-http-client

クラス:

me.shenfeng.http.ConnectionListener
me.shenfeng.http.SocksHandler

3.6.2.final の Netty にはパッケージ *.socks が含まれています: http://netty.io/4.0/api/io/netty/handler/codec/socks/package-summary.html
したがって、このオブジェクト モデルを使用して、ソックス サーバーとの間でソックス メッセージをエンコード/デコードできます。

于 2013-03-11T12:19:04.093 に答える
-1

クライアントからサーバーへの WebSockets 接続を使用しており、web-sockets プロトコルは HTTP に基づいているため、そのような構造は機能するはずです (あなたが書いたものとは少し異なります):

//System.setProperty("socksProxySet","true"); //it's commented, because it seems to be not necessary
System.setProperty("socksProxyHost","127.0.0.1");
System.setProperty("socksProxyPort","1080");

しかし、あなたはそれがうまくいかないと言っているので、公式の netty のプロキシのを確認することをお勧めします。

于 2013-03-07T14:40:31.473 に答える