欢迎来到天天文库
浏览记录
ID:35646525
大小:148.93 KB
页数:30页
时间:2019-04-06
《Netty3.2用户手册》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、JBoss.org:Netty-TheClientServerFrameworkandToolsCommunityDocumentationNetty3.2用户手册快速有效的网络应用开发前言1.问题提出2.解决方案1.开始1.1.写在开始之前1.2.编写一个Discard服务1.3.详解ReceivedData1.4.编写一个Echo服务1.5.编写一个Time服务1.6.编写一个Time客户端1.7.处理基于流的传输1.7.1.套接字缓存(SocketBuffer)的一个小警示1.7.2.第一个解决办法1.7.3.
2、第二个解决办法1.8.用POJO取代ChannelBuffer1.9.关闭应用程序1.10.总结2.架构概览2.1.丰富的缓存数据结构2.2.统一的异步I/OAPI2.3.基于拦截者链(InterceptorChain)模式的事件模型2.4.为更快捷开发的高级组件2.4.1.编码框架2.4.2.SSL/TLS支持2.4.3.HTTP实现2.4.4.GoogleProtocolBuffer集成2.5.总结前言1. 问题提出当前我们使用通用的应用或库来相互通信。比如,我们常常使用HTTP客户端库来从WEB服务器上获取信息
3、,并通过WebService来调用一个远程过程。然而,一个通用的协议或者它的实现,有时候并不能很好的扩展。这一点类似于我们不适用通用的HTTP服务器来交换大的文件、电子邮件和诸如财务信息和多人游戏数据等近乎于实时的数据。这些东西需要根据其特定用途而进行高度优化的协议实现。例如,你可能需要一个专门针对基于AJAX的聊天应用、针对多媒体流、或者大的文件传输进行了优化的HTTP服务器。你甚至可能想设计并实现一个完全按照你的需求而定义的全新的协议。另一种情况也是难以避免的。那就是,为了和一个既有的旧系统进行交互,你必须处理旧
4、系统上使用的协议。这时,在不牺牲稳定性和性能的前提下,你能够在多长时间内实现那个协议就非常重要。2. 解决方案Netty项目是一个提供异步的、事件驱动的网络应用框,是一套有助于快速开发出高性能、高扩展性的、高可维护性的协议的服务器或客户端的开发工具。换而言之,Netty是一个基于NIO的C/S框架。这套框架可以快速、简单地开发出网络协议的客户端和服务器端应用。它可以大大简化、流程化TCP和UDP套接字的服务器开发过程。“快速和简单”并不意味着开发出的应用会遇到可维护性、性能等问题。Netty是建立在从许多网络协议(如
5、FTP、SMTP、HTTP和各种二进制和文本协议等)中借鉴的经验基础上精心设计出的。这使得Netty在开发的简单化、性能、稳定性、灵活性等方面都同时达到了设计目标。一些用户可能已经发现了其他的一些网络应用框架。这些框架也宣称具有相同的优势。这时你可能会问:Neey有什么不同?答案是“道不同”。Netty设计的原则是:给你提供从API到实现以最舒适的体验。这一点是看不到摸不着的。但你在阅读这个文档、以及应用Netty过程中,你会体验到我们的这个设计原则使得一切变得轻松容易。Chapter 1. 开始1.1.开始之前1.
6、2.编写一个Discard服务1.3.详解ReceivedData1.4.编写一个Echo服务1.5.编写一个Time服务1.6.编写一个Time客户端1.7.处理基于流的传输1.7.1.套接字缓存(SocketBuffer)的一个小警示1.7.2.第一个解决办法1.7.3.第二个解决办法1.8.用POJO取代ChannelBuffer1.9.关闭你的应用程序1.10.总结这一章围绕着Neey的核心构成讲述,并提供了简单的例子以便快速上手。读到本章末尾,你将可以写一个基于Netty的客户端和服务器。如果你喜欢自顶向下
7、的学习方式,你应该从Chapter 2,架构概览开始,然后再回到这里。1.1. 开始之前运行本章中的例子最低的要求只有两个:最新版本的Netty和JDK1.5或更高版本。最新的Netty可以在此下载。要下载到正确的JDK版本,请参考你选择的JDK提供商的网站。在读的过程中,你会对本章中涉及的类有更多的疑问。当你想了解更多的时候,请参考API文档。所有的类名,都非常方便地连接到了在线的API页面上。此外,记得联系我们Netty社区并告诉我们是否有些信息不正确,语法或者拼写等错误,或者你有一个提高这个文档的好办法。1.2
8、. 编写一个Discard服务这个世界上最简单的协议不是“Hello,World!”,而是DISCARD。这个协议丢弃所有的收到的数据,不给任何回应。为了实现这个DISCARD协议,你唯一要做的事情就是忽略所有收到的数据。我们直接从处理器(handler)的实现开始。这个处理器处理Netty生成的I/O事件。packageorg.jboss.n
此文档下载收益归作者所有