`
scriptguy
  • 浏览: 35636 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

mina源码解析之---数据接收处理流程

阅读更多


        如果想通过Mina来实现一个自定义协议的网络应用程序,用户只需要编写自定义协议编解码处理器和业务处理逻辑即可。由于每一个Session关联一个Processor处理线程,多个Session共享有限的Processor线程池,如果Handler中的业务逻辑处理比较耗时,会导致后续请求阻塞等待,严重降低效率,所以,一般会向Acceptor的FilterChain添加一个ExecutorFilter来缓解该问题,典型代码如下:

 

            DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
            // 日志
            LoggingFilter filter = new LoggingFilter();
            chain.addLast("logger", filter);
            // 协议处理
            chain.addLast("codec", new ProtocolCodecFilter(codecFactory));
            // 线程池
            chain.addLast("executor", new ExecutorFilter(Executors.newCachedThreadPool()));

 

当server接收到client发送数据后的处理流程如下:

呵呵,用jude画的序列图,不是很规范。备忘。
 

  • 大小: 46.3 KB
分享到:
评论

相关推荐

    mina-2.0.0-M6.zip

    2. **事件驱动**:MINA基于事件驱动的设计,当网络事件发生时,如数据接收或发送完成,MINA会触发相应的处理器来处理这些事件,简化了编程模型。 3. **协议无关性**:MINA的API设计使其可以方便地支持各种网络协议...

    mina HTTP协议实例

    2. **Handler处理**:MINA的处理器是网络事件的实际处理者,负责接收和发送数据。在HTTP协议实例中,Handler会解析接收到的HTTP请求,并生成相应的HTTP响应。 3. **HTTP协议解析**:在MINA中,我们需要编写代码来...

    mina源代码学习提供下载

    3. **事件驱动**:MINA的事件模型基于IoSession对象,当网络事件发生时(如连接建立、数据接收、连接关闭等),会触发相应的事件处理器。 4. **过滤器链**:MINA引入了过滤器的概念,数据在传输过程中会经过一系列...

    MINA使用札记(CumulativeProtocolDecoder使用)

    - **数据接收**:每当有新的数据到达,MINA会调用CumulativeProtocolDecoder的decode方法,传入当前的Buffer对象。 - **累积数据**:解码器会将Buffer中的数据添加到内部缓冲区,并检查是否可以解码一个完整的消息...

    MINA学习笔记(仅供参考)

    当有网络事件发生时(如客户端连接请求、数据接收等),IoService会将这些事件分发给相应的IoHandler进行处理。 #### MINA的工作流程 1. **初始化IoService**:首先需要创建一个IoService实例,并设置必要的参数,...

    mina 2.0压缩包

    1. **Echo示例**:这是一个简单的回显服务器,展示了如何接收和发送数据的基本流程。 2. **Chat示例**:实现了一个多用户聊天室,演示了如何处理多个并发连接和广播消息。 3. **HTTP服务器**:通过Mina构建的HTTP...

    一般Socket客户端与Mina NIO Socket客户端对比示例

    `ResponseHandler.java`很可能是处理服务器响应的处理器类,它对接收到的数据进行解码、解析和业务逻辑处理。在Mina中,你可以定义自己的处理器链,实现复杂的数据处理和事件驱动的编程模型。 在对比这两者时,我们...

    socket通讯和mina应用

    - IoFilter:类似于Servlet中的Filter,处理数据的读写,提供诸如加密、压缩、协议解析等功能。 - IoHandler:处理网络事件,如连接建立、数据读取、连接关闭等。 - IoService:抽象了服务端和客户端的概念,提供...

    Mina入门程序

    服务器端接收到数据后,通过解码器解析数据,然后由处理器进行业务逻辑处理,最后可能需要编码并返回响应给客户端。 总结来说,Mina入门程序涉及到了网络通信的基本元素,包括服务器和客户端的创建、连接的建立、...

    mina自定义编码解码器

    在Mina中,这两个组件通常是IoFilter的实现,可以通过IoFilterChain添加到网络通信的处理流程中。 1. 自定义编码器(Encoder): 要创建一个自定义的编码器,你需要继承IoBufferEncoder或者MessageToByteEncoder...

    android mina使用

    《Android Mina 深入解析与应用》 在 Android 开发中,有时我们需要实现复杂的网络通信功能,例如TCP或UDP通信,这时Android Mina框架就显得尤为重要。Mina 是一个开源的网络通信框架,源自Java平台,但在Android上...

    mina demo

    在"test.client"和"ws-server"这两个文件中,"test.client"可能是一个使用MINA实现的客户端示例,它展示了如何创建连接,发送和接收数据;而"ws-server"则可能是一个基于MINA的WebSocket服务器,WebSocket是一种在...

    Apache MINA (2) Hello World!

    `IoHandler`是MINA中的关键接口,它定义了当网络事件发生时如何处理的方法,如连接建立、数据接收和断开连接等。 在`MyProtocolHandler`中,我们重写`sessionCreated()`方法来处理新连接的建立,`messageReceived()...

    关于MinaIoFilter源码的个人理解

    Mina的核心之一是其过滤器机制(IoFilter),它允许开发者在数据流的各个阶段插入自定义的逻辑。IoFilter的设计类似于Java Servlets中的Filter模式,它提供了对数据读写操作的拦截能力。IoFilter通过一系列的钩子方法...

    Openfire源码分析

    ### Openfire源码分析 #### 一、Openfire概述 **Openfire**是一款基于XMPP协议的开源实时通信服务器,XMPP(可扩展消息处理协议)又称为Jabber协议,是一种开放标准的即时通讯协议。Openfire的核心功能主要包括...

    基于阿里云、小程序、Arduino的WS2812灯控系统.zip

    项目中的"P20220302ws2812mina"可能是Arduino代码文件,可能包含了连接阿里云的库函数、解析服务器数据的逻辑以及控制WS2812灯带的函数。开发人员可能使用了Arduino IDE进行编程,并通过WiFi或蓝牙模块(如ESP8266或...

Global site tag (gtag.js) - Google Analytics