爱因斯坦说:所有的伟大都是简单的细节。Netty为我们提供了如此强大的Eventloop和频道。通过有效使用这些简单的事物,我们可以得到非常强大的应用程序,例如今天要讨论的代理。
我相信,只要程序员应该听到nginx服务器,这个超级excellent nginx的非常重要的功能是进行反向代理。因此,有些朋友想问,必须有反向代理的积极代理,因此,有什么区别是什么区别他们两个?
让我们先谈谈积极的代理。例如,最近的星星最近被击中。尽管被抑制了,但星星是星星。大多数人看不到它。如果某人需要与星星交谈,他们需要通过星星的明星。某些代理商将他们的话传达给星星。这是积极的代理。我们访问通过积极代理人访问的对象。
那么什么是反向代理?例如,现在有许多人工智能。如果我们与智能机器人A进行交谈,那么A将我们之间的对话转移给背后的隐藏人。这个人利用他的智慧回答了我们的对话,情报和情报,并将情报发送给了情报,并将情报发送给了智能。Robota输出最终实现了人工智能。反向代理。
那么如何在Netty中实现此代理服务器?
代理服务器的首选是服务器,因此我们需要使用Netty中的ServerBootstrap来创建服务器:
在此本地服务器中,我们被介绍给proxyinitializer。在此处理程序初始化器中,我们被介绍给自定义处理程序:
在自定义处理程序中,我们使用Bootstrap创建客户端以连接到需要代理遥控器的服务器。我们将该客户的创建放在频道方法中::
然后,在客户端建立连接后,您可以从InboundChannel读取数据:
因为这是一个代理服务,所以您需要阅读InboundChannel的数据读取到OutboundChannel,因此我们需要在ChannelRead中这样写:
成功写出OutboundChannel时,继续阅读InboundChannel。
同样,对于客户的出口通道,还有一个处理程序。在此处理程序中,我们需要在InboundChannel中将数据反写作会议放在:
当InboundChannel成功编写时,继续阅读OutboundChannel的作品。
如此简单的代理服务器已完成。
如果我们烦恼www.163.com的端口80端口的本地8000端口?
您为什么不像我们想象的那样显示普通页面?那是因为我们过去的域名是Localhost,而不是普通的www.163.com,因此服务器不知道我们报告错误的请求。
本文中代理服务器之间的简单转发请求无法处理上述场景。那么如何解决上述问题?请继续关注我的后续文章!
本文的示例可以参考:Learn-netty4
最受欢迎的解释,最深的干货,最简单的教程,您不知道的许多技巧正在等待您发现!
欢迎注意我的公共帐户:“程序的事情”,了解技术并更好地了解您!