是否有可能使用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客户端通过websockets连接到netty服务器。
Java NIO不支持代理。 Netty基于Java NIO。我只是希望这种可能性存在/可以添加到netty。
谢谢!
答案 0 :(得分:2)
很简单。您必须使用自己的处理程序创建侦听器。示例可以在这里找到: https://github.com/shenfeng/async-http-client
类:
me.shenfeng.http.ConnectionListener
me.shenfeng.http.SocksHandler
3.6.2.final中的Netty包含package * .socks:
http://netty.io/4.0/api/io/netty/handler/codec/socks/package-summary.html。
因此,此对象模型可用于对来自socks服务器的socks消息进行编码/解码。
答案 1 :(得分:-1)
由于您正在使用从客户端到服务器的WebSockets连接,并且Web套接字协议基于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的代理example。