`
shixiaomu
  • 浏览: 383020 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mina的深入学习-未完待续

    博客分类:
  • java
阅读更多
想要看懂mina的源代码,需要做一些知识储备.
我大体列一下:
java.nio.*(java非阻塞io)
java.util.concurrent.*(原子类,阻塞集合,java并发)
java.thread(线程模型)
threadPool(线程池)
java.lang.reflect.InvocationHandler(动态代理)
invoke(反射)
jmx(平台管理)

需要用到几个设计模式:
观察者模式:observer
责任链模式:chain
异步模式(推) :Reactor
异步通知模式:Future(基于事件和回调模式)
状态机模式:state
工厂,单例,代理,工厂,....


下面展开讲述Filter实现里面的状态机:


DecodingState
DecodingStateMachine
DecodingStateProtocolDecoder
ProtocolCodecFactory
ProtocolCodecFilter
IoFilterChain(串联ioFilter)-->head-tail-addLast(中间加自定义的过滤器-)


贯穿始终的几个事件.
void exceptionCaught(IoSession session, Throwable cause)
当接口中其他方法抛出异常未被捕获时触发此方法
void messageReceived(IoSession session, Object message)
当接收到客户端的请求信息后触发此方法.
void messageSent(IoSession session, Object message)
当信息已经传送给客户端后触发此方法.
void sessionClosed(IoSession session)
当连接被关闭时触发,例如客户端程序意外退出等等.
void sessionCreated(IoSession session)
当一个新客户端连接后触发此方法.
void sessionIdle(IoSession session, IdleStatus status)
当连接空闲时触发此方法.
void sessionOpened(IoSession session)
当连接后打开时触发此方法,一般此方法与 sessionCreated 会被同时触发

2011-03-11-22:30-回家的火车上-第一次编译.


有两个东西没有记录:
分享到:
评论

相关推荐

    mina2.0 含11个jar包

    mina-core-2.0.0-M6.jar mina-example-2.0.0-M6.jar mina-filter-codec-netty-2.0.0-M6.jar mina-filter-compression-2.0.0-M6.jar mina-integration-beans-2.0.0-M6.jar mina-integration-jmx-2.0.0-M6.jar mina-...

    mina-filter-compression-2.0.7.jar

    mina-filter-compression-2.0.7.jar,mina 过滤器jar包,核心包之一

    mina-core-2.0.0-M1.jar/mina-example-1.0.5.jar

    mina-core-2.0.0-M1.jar/mina-example-1.0.5.jar/slf4j-jdk14-1.6.1.jar/slf4j-log4j12-1.6.1.jar mina 所用jar

    mina-core-2.0.0-RC1.jar,mina-filter-compression-2.0.0-RC1.jar

    在这个场景中,我们关注的是MINA的核心组件以及两个特定的过滤器和传输组件:`mina-core-2.0.0-RC1.jar`、`mina-filter-compression-2.0.0-RC1.jar`和`mina-transport-apr-2.0.0-RC1.jar`。 **MINA Core (mina-core...

    mina-integration-beans-2.0.0-M4.jar

    mina-integration-beans-2.0.0-M4.jar mina-integration-beans-2.0.0-M4.jar

    mina-integration-ognl-2.0.0-M4.jar

    mina-integration-ognl-2.0.0-M4.jar mina-integration-ognl-2.0.0-M4.jar

    mina-core-2.0.0-M1.jar和slf4j

    《mina-core-2.0.0-M1.jar与SLF4J:构建高效网络通信与日志记录》 mina-core-2.0.0-M1.jar是Apache Mina项目的核心库,它是一个高度可扩展的网络通信框架,主要用于构建高性能、高效率的服务端和客户端应用程序。...

    mina-transport-apr-2.0.2.jar

    mina-transport-apr-2.0.2.jar

    mina-core-2.0及其他相关jar

    mina-core-2.0及其他相关jar,mina-core-2.0及其他相关jarmina-core-2.0及其他相关jarmina-core-2.0及其他相关jarmina-core-2.0及其他相关jar

    mina-core-2.0.0-RC1-sources.jar

    mina-core-2.0.0-RC1-sources.jar

    mina-core-2.0.0-M1-sources.jar

    mina-core-2.0.0-M1-sources.jar是构建mina框架的主要文件

    apache-mina-2.0.16-jar包-代码.zip

    标题中的"apache-mina-2.0.16-jar包-代码.zip"表明这是一个包含Apache Mina 2.0.16版本源代码的JAR文件压缩包。这个压缩包通常用于开发者进行源码级别的学习、调试或定制工作。通过解压这个文件,你可以获得Mina库的...

    mina-filter-compression-2.0.2.jar

    mina-filter-compression-2.0.2.jar

    mina2.0全部jar包

    mina-example-2.0.7.jar包含了MINA提供的示例代码,这些例子覆盖了各种常见的网络应用场景,包括HTTP服务器、聊天应用等,可以帮助开发者快速理解和学习如何使用MINA进行网络编程。 mina-statemachine-2.0.7.jar...

    apache-mina-2.0.7-bin.tar

    描述中提及的"apache-mina-2.0.7-src.tar"是该项目的源代码包,对于开发者而言,这是一个非常重要的资源,因为它允许用户查看、学习和修改Mina的源代码,以便进行定制化开发或调试。同时,"rxtx-2.0-7pre1-i386-pc-...

    Apache-Mina-2.rar_apache mina_java mina_mina_mina-core-1.1.3

    Apache Mina是一个强大的开源项目,专门设计用于构建网络应用程序。这个框架的核心目标是...通过深入学习和实践,开发者可以创建出满足各种需求的网络服务,无论是在企业级应用还是小型项目中,Mina都能发挥重要作用。

    mina-core-2.0.0-M6.jar

    mina-core-2.0.0-M6.jar

    MINA-2.0.0-M4 英文版

    MINA(Multipurpose ...总之,MINA-2.0.0-M4的英文版API帮助文档是学习和使用MINA框架的重要资源,通过深入研究这个CHM文件,开发者可以更好地掌握MINA的原理和实践,从而开发出高效、稳定的网络应用程序。

    mina-pull-down-refresh-master.zip

    "mina-pull-down-refresh-master.zip"这个压缩包提供的解决方案,旨在完美解决这一难题。 1. 微信小程序ScrollView概述: 微信小程序中的ScrollView组件是用于展示可滚动内容的容器,可以垂直或水平滚动。它支持...

    mina-core-2.0.7.jar

    mina-core-2.0.7.jar,MINA核心jar包,用于基于mina的开发

Global site tag (gtag.js) - Google Analytics