开源电子书:Netty 4 开发手册

VIP免费
2024-12-10 1 0 664.69KB 37 页 5.9玖币
侵权投诉
1.1
1.2
1.2.1
1.2.2
1.3
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.3.6
1.3.7
1.3.8
1.3.9
1.3.10
1.4
1.4.1
1.4.2
1.4.4
1.4.5
1.4.3
1.5
1.5.1
1.5.2
1.5.3
TableofContents
Introduction
Preface前言
TheProblem问题
TheSolution解决
GettingStarted开始
BeforeGettingStarted开始之前
WritingaDiscardServer写个抛弃服务器
LookingintotheReceivedData查看收到的数据
WritinganEchoServer写个应答服务器
WritingaTimeServer写个时间服务器
WritingaTimeClient写个时间客户端
DealingwithaStream-basedTransport处理一个基于流的传输
SpeakinginPOJOinsteadofByteBufPOJO代替ByteBuf
ShuttingDownYourApplication关闭你的应用
Summary总结
ArchitecturalOverview架构总览
RichBufferDataStructure丰富的缓冲实现
UniversalAsynchronousI/OAPI统一的异步I/OAPI
EventModelbasedontheInterceptorChainPattern基于拦截链模式的事件模型
AdvancedComponentsforMoreRapidDevelopment适用快速开发的高级组
Summary总结
Others其他
Netty实现聊天功能
Netty实现WebSocket聊天功能
Netty超时机制及心跳程序实现
1
Netty4.xUserGuide中文翻译《Netty4.x
用户指南》
ChinesetranslationofNetty4.xUserGuide.Youcanalsoseethedemosoftheguidehere.
ThereisaGitBookversionofthebook:http://waylau.gitbooks.io/netty-4-user-guide/or
https://waylau.com/netty-4-user-guide/Let'sREAD!
Netty4.x用户指南》中文翻译(包含了官方文档以及其他文章)。至今为止,Netty的最新
版本为4.0.44.Final(2017-1-30)对此进行翻译,并在原文的基础上,插入配图,图文并茂方
便用户理解。
作为提升,也推荐阅读《Netty实战(精髓)》。与之类似的NIO框架还有MINA,可以参阅
ApacheMINA2用户指南》。
GetStarted如何开始阅读
选择下面入口之一:
https://github.com/waylau/netty-4-user-guide/SUMMARY.md(源码)
http://waylau.gitbooks.io/netty-4-user-guide/点击Read按钮(同步更新,国内访问速度
一般)
https://waylau.com/netty-4-user-guide/(国内访问速度快,定期更新。最后更新于2016-
3-1
Code源码
书中所有示例源码,移步至https://github.com/waylau/netty-4-user-guide-demos
Issue意见、建议
如有勘误、意见或建议欢迎拍砖https://github.com/waylau/netty-4-user-guide/issues
Contact联系作者:
Blog:waylau.com
Introduction
2
Gmail:waylau521(at)gmail.com
Weibo:waylau521
Twitter:waylau521
Github:waylau
 
Introduction
3
TheProblem问题
今天,我们使用通用的应用程序或者类库来实现互相通讯,比如,我们经常使用一个HTTP
客户端库来从web服务器上获取信息,或者通过web服务来执行一个远程的调用。
然而,有时候一个通用的协议或他的实现并没有很好的满足需求。比如我们无法使用一个通
用的HTTP服务器来处理大文件、电子邮件以及近实时消息,比如金融信息和多人游戏数
据。我们需要一个高度优化的协议来处理一些特殊的场景。例如你可能想实现一个优化了的
Ajax的聊天应用、媒体流传输或者是大文件传输器,你甚至可以自己设计和实现一个全新的
协议来准确地实现你的需求。
另一个不可避免的情况是当你不得不处理遗留的专有协议来确保与旧系统的互操作性。在这
种情况下,重要的是我们如何才能快速实现协议而不牺牲应用的稳定性和性能。
TheProblem问题
4
TheSolution解决
Netty是一个提供asynchronousevent-driven(异步事件驱动)的网络应用框架,是一个用
以快速开发高性能、可扩展协议的服务器和客户端。
换句话说,Netty是一个NIO客户端服务器框架,使用它可以快速简单地开发网络应用程
序,比如服务器和客户端的协议。Netty大大简化了网络程序的开发过程比如TCPUDP
socket服务的开发。
快速和简单并不意味着应用程序会有难维护和性能低的问题,Netty是一个精心设计的框
架,它从许多协议的实现中吸收了很多的经验比如FTPSMTPHTTP、许多二进制和基于
文本的传统协议.因此,Netty已经成功地找到一个方式,在不失灵活性的前提下来实现开发的
简易性,高性能,稳定性。
有一些用户可能已经发现其他的一些网络框架也声称自己有同样的优势,所以你可能会问是
Netty和它们的不同之处。答案就是Netty的哲学设计理念。Netty从开始就为用户提供了用
户体验最好的API以及实现设计。正是因为Netty的哲学设计理念,才让您得以轻松地阅读
本指南并使用Netty
TheSolution解决
5
GettingStarted开始
本章围绕Netty的核心架构,通过简单的示例带你快速入门。当你读完本章节,你马上就可以
Netty写出一个客户端和服务器。
如果你在学习的时候喜欢“top-down(自顶向下),那你可能需要要从第二章《Architectural
Overview(架构总览)》开始,然后再回到这里。
GettingStarted开始
6
BeforeGettingStarted开始之前
在运行本章示例之前,需要准备:最新版的Netty以及JDK1.6或以上版本。最新版的Netty
在这下载。自行下载JDK
阅读本章节过程中,你可能会对相关类有疑惑,关于这些类的详细的信息请请参考API说明
文档。为了方便,所有文档中涉及到的类名字都会被关联到一个在线的API说明。当然,如
果有任何错误信息、语法错误或者你有任何好的建议来改进文档说明,那么请联系Netty
译者注:对本翻译有任何疑问,在https://github.com/waylau/netty-4-user-guide/issues提问
BeforeGettingStarted开始之前
7
WritingaDiscardServer写个抛弃服务器
世上最简单的协议不是'Hello,World!'而是DISCARD(抛弃服务)。这个协议将会抛弃任何收到
的数据,而不响应。
为了实现DISCARD协议,你只需忽略所有收到的数据。让我们从handler(处理器)的实
现开始,handler是由Netty生成用来处理I/O事件的。
importio.netty.buffer.ByteBuf;
importio.netty.channel.ChannelHandlerContext;
importio.netty.channel.ChannelInboundHandlerAdapter;
/**
*处理服务端channel.
*/
publicclassDiscardServerHandlerextendsChannelInboundHandlerAdapter{//(1)
@Override
publicvoidchannelRead(ChannelHandlerContextctx,Objectmsg){//(2)
//默默地丢弃收到的数据
((ByteBuf)msg).release();//(3)
}
@Override
publicvoidexceptionCaught(ChannelHandlerContextctx,Throwablecause){//(4)
//当出现异常就关闭连接
cause.printStackTrace();
ctx.close();
}
}
1.DiscardServerHandler继承自ChannelInboundHandlerAdapter,这个类实现了
ChannelInboundHandler接口,ChannelInboundHandler提供了许多事件处理的接口方法,
然后你可以覆盖这些方法。现在仅仅只需要继承ChannelInboundHandlerAdapter类而不是你
自己去实现接口方法。
2.这里我们覆盖了chanelRead()事件处理方法。每当从客户端收到新的数据时,这个方法会
在收到消息时被调用,这个例子中,收到的消息的类型是ByteBuf
3.为了实现DISCARD协议,处理器不得不忽略所有接受到的消息。ByteBuf是一个引用计数
对象,这个对象必须显示地调用release()方法来释放。请记住处理器的职责是释放所有传递
到处理器的引用计数对象。通常,channelRead()方法的实现就像下面的这段代码:
WritingaDiscardServer写个抛弃服务器
8
摘要:

1.11.21.2.11.2.21.31.3.11.3.21.3.31.3.41.3.51.3.61.3.71.3.81.3.91.3.101.41.4.11.4.21.4.41.4.51.4.31.51.5.11.5.21.5.3TableofContentsIntroductionPreface前言TheProblem问题TheSolution解决GettingStarted开始BeforeGettingStarted开始之前WritingaDiscardServer写个抛弃服务器LookingintotheReceivedData查看收到的数据WritinganEchoServer写个应...

展开>> 收起<<
开源电子书:Netty 4 开发手册.pdf

共37页,预览8页

还剩页未读, 继续阅读

声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
分类:计算机 价格:5.9玖币 属性:37 页 大小:664.69KB 格式:PDF 时间:2024-12-10

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 37
客服
关注