org.jboss.netty.channel
接口 ChannelFactory

所有超级接口:
ExternalResourceReleasable
所有已知子接口:
ClientSocketChannelFactory, DatagramChannelFactory, LocalClientChannelFactory, LocalServerChannelFactory, ServerChannelFactory, ServerSocketChannelFactory
所有已知实现类:
DefaultLocalClientChannelFactory, DefaultLocalServerChannelFactory, HttpTunnelingClientSocketChannelFactory, NioClientSocketChannelFactory, NioDatagramChannelFactory, NioServerSocketChannelFactory, OioClientSocketChannelFactory, OioDatagramChannelFactory, OioServerSocketChannelFactory

public interface ChannelFactory
extends ExternalResourceReleasable

创建一个关联到实际通讯实体如网络套接字的Channel的传输主接口 . 比如, NioServerSocketChannelFactory创建一个基于NIO的服务套接字作为底层通讯实体.

一旦一个新的Channel被创建,一个指定的ChannelPipeline会作为 newChannel(ChannelPipeline)的参数附加到新的Channel上,并开始处理关联的 ChannelEvent.

优雅的关闭

要关闭一个被工厂管理的网络应用服务.你必须执行以下步骤:

  1. 关闭有该工厂创建的所有通道和它们的子通道,通常是使用ChannelGroup.close()
  2. 调用releaseExternalResources().

要了解更多关于关闭一个工厂特定传输信息,请参阅ChannelFactory子类的Java文档,如 NioServerSocketChannelFactory.


方法摘要
 Channel newChannel(ChannelPipeline pipeline)
          创建和打开一个新的Channel,并使用指定的 ChannelPipeline附加到新的 Channel.
 void releaseExternalResources()
          释放该工厂依赖的外部资源.
 

方法详细信息

newChannel

Channel newChannel(ChannelPipeline pipeline)
创建和打开一个新的Channel,并使用指定的 ChannelPipeline附加到新的 Channel.

参数:
pipeline - 准备附加到新ChannelChannelPipeline
返回:
返回新的通道
抛出:
ChannelException - 当创建和打开一个通道时抛出异常

releaseExternalResources

void releaseExternalResources()
释放该工厂依赖的外部资源. 外部资源是指不是由该工厂创建的资源. 例如, 在工厂指定的Executor就是外部资源. 当这些资源不被该工厂使用或不是应用程序的一部分时 ,你可以很方便的调用该方法去释放所有外部资源.然而如果一个由该工厂管理的打开通道资源被释放时会导致意料.

指定者:
接口 ExternalResourceReleasable 中的 releaseExternalResources