文档详情

netty技术实现即时通信方案.docx

发布:2025-05-25约5.47千字共9页下载文档
文本预览下载声明

netty

netty是啥

netty是jboss下的是开源工程。一个封装Socket的jar。可以快速开发高性能,高可靠的网络效劳器与客户端程序。与apache下的mina是同一个作者〔TrustinLee〕,并且是优化版。

netty的优点

1.开发简单,完整的Doc和用户样例,适用于不同的协议。

2.基于灵活,可扩展的事件驱动模型。

3.可靠soket支持,高度可定制的线程模型。

4.更好的吞吐量,低延迟,节省资源,内部优化成熟,减少不必要的内存拷贝

5.能与android环境运行良好。

6.完整的SSL/TLS和STARTTLS的支持

Netty整体架构

Netty组件

?

ChannelFactory

Boss

Worker

Channel

ChannelEvent

Pipeline

ChannelContext

Handler

Sink

?

Server端核心类

NioServerSocketChannelFactory

NioServerBossPool?

NioWorkerPool

NioServerBoss

NioWorker

NioServerSocketChannel

NioAcceptedSocketChannel

DefaultChannelPipeline

NioServerSocketPipelineSink

Channels

?

?

ChannelFactory

Channel工厂,很重要的类

保存启动的相关参数

?

NioServerSocketChannelFactory

NioClientSocketChannelFactory

NioDatagramChannelFactory

?

这是Nio的,还有Oio和Local的

?

?

SelectorPool

?

Selector的线程池

?

NioServerBossPool默认线程数:1

NioClientBossPool???1

NioWorkerPool???2*Processor

NioDatagramWorkerPool

?

?

Selector

?

选择器,很核心的组件

?

NioServerBoss

NioClientBoss

NioWorker

NioDatagramWorker

?

?

Channel

?

通道

?

NioServerSocketChannel

NioClientSocketChannel

NioAcceptedSocketChannel

NioDatagramChannel

?

Sink

负责和底层的交互

如bind,Write,Close等

?

NioServerSocketPipelineSink

NioClientSocketPipelineSink

NioDatagramPipelineSink

?

Pipeline

负责维护所有的Handler

?

ChannelContext

一个Channel一个,是Handler和Pipeline的中间件

?

Handler

对Channel事件的处理器

?

?

ChannelPipeline

?

?

?

优秀的设计----事件驱动

?

?

优秀的设计----线程模型

案例

Server端:

package;

import;

import.*;

importorg.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;

import;

import;

import;

import;

/**

*GodBlessYou!

*Author:Fangniude

*Date:2013-07-15

*/

publicclassNettyServer{

publicstaticvoidmain(String[]args){

ServerBootstrapbootstrap=newServerBootstrap(newNioServerSocketChannelFactory(Executors.newCachedThreadPool(),Executors.newCachedThreadPool()));

//Setupthedefaulteventpipeline.

bootstrap.setPipelineFactory(newChannelPipelineFactory(){

@Override

public

显示全部
相似文档