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

Mina实现同步设置

 
阅读更多

mina是个异步通信框架,一般使用场景是服务端开发,长连接、异步通信使用mina是及其方便的。

 

对于并发量不高的场景,现在流行使用短连接:每次连接只进行一次通信,即连接-发送-接收-断开。此种模式的通信客户端,能否使用mina开发?答案是肯定的。

 

mina典型应用,需要实现IoHanlder接口,当收到消息时,此接口的messageReceived方法被触发,开发人员实现此方法即可处理消息。

 

一个同步的客户端,可以不再需要IoHandler,但必须设置如下属性useReadOperationtruemina会自动添加一个默认的IoHandler实现。

 

下面给出代码片段,一看即明

 

 

       NioSocketConnector connector = new NioSocketConnector();

       connector.setConnectTimeoutMillis(30000L);

       connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new YourCodecFactory()));

       SocketSessionConfig cfg = connector.getSessionConfig();

       cfg.setUseReadOperation(true);

       IoSession session = connector.connect(ip,port).awaitUninterruptibly().getSession();

 

 

现在已实现了连接,接下来就是发送-接收-断开了

 

 

           try {

              // 发送

              session.write(YourMessage).awaitUninterruptibly();

 

              // 接收

              ReadFuture readFuture = session.read();

 

              if (readFuture.awaitUninterruptibly(waitTimeout, TimeUnit.SECONDS)) {

                  YourMessage msg = readFuture.getMessage();

                  // TODO 处理消息

              } else {

                  // 读超时

              }

           } finally {

              // 断开

              session.close(true);

              session.getService().dispose();

           }

分享到:
评论

相关推荐

    mina 同步客户端,异步客户端

    总之,MINA为开发者提供了强大的网络编程工具,无论你是构建同步还是异步的客户端-服务器应用,都能借助其丰富的功能和优秀的性能优化实现。通过深入学习MINA,我们可以提升网络应用的开发效率和质量,尤其是在处理...

    使用mina框架实现cmpp2.0服务端

    **使用mina实现CMPP2.0服务端的关键点** 1. **连接管理**:使用Mina的Acceptor来监听特定端口,接受来自移动网关的连接请求。每个连接通常对应一个独立的工作线程,处理来自客户端的CMPP请求。 2. **会话建立**:...

    使用MINA实现长连接

    而MINA通过使用NIO(Non-blocking I/O)技术,实现了异步事件驱动的通信模式,极大地提高了系统的并发处理能力。 **MINA的核心组件:** 1. **Session:** 表示一个网络连接,它是MINA中的基本概念,包含了与远程...

    Android MiNa 通讯实现

    **Android MiNa 通讯实现** MiNa(Mini NIO Asynchronous)是Apache软件基金会的一个开源项目,它提供了一个网络通信框架,适用于Java平台。在Android应用中,MiNa可以用于构建高性能、异步的网络应用,例如聊天...

    基于Android开发MINA框架使用详解

    - 在Android项目中引入MINA依赖:你需要在build.gradle文件中添加MINA的依赖库,并同步项目,确保库被正确引入。 - 创建MINA服务端和客户端:服务端负责接收和分发数据,客户端用于发起连接并发送/接收数据。 3. ...

    Mina2.0学习笔记(修订版)

    Mina通过异步I/O操作进一步提升性能,如异步写入、读取和关闭连接,避免同步等待造成的资源浪费。 **Mina内部实现分析** 深入剖析Mina如何利用NIO和异步I/O机制构建高效网络通信框架,涉及线程模型、缓冲区管理、...

    mina技术知识

    传统的同步I/O模型在处理高并发时,往往需要创建大量的线程,每个线程负责一个连接,这样的方式会消耗大量内存,并可能导致线程上下文切换的性能开销。而Mina采用NIO(Non-blocking I/O)技术,通过一个或少量的线程...

    Mina长连接框架实现Android客户端与服务器端通信

    在Android客户端与服务器端通信中,Mina框架因其高效的异步I/O处理能力,常被用来构建长连接,实现稳定且低延迟的数据传输。 长连接是指在通信过程中,一旦建立起连接,就保持该连接不关闭,直到通信结束或出现异常...

    Android端集成Mina框架实现长连接,完美解决断线重连问题,修复断线重连打开多端口问题.zip

    这通常通过Gradle配置完成,将Mina的JAR文件或者对应的AAR包引入到build.gradle文件中,并在同步后,即可在项目中使用Mina的相关类和接口。 在实现长连接时,关键步骤包括创建Acceptor(服务器端)和Connector...

    mina编码器详解

    ### Mina编码器详解 #### 一、引言 Mina是Apache下的一个高效、轻量级的网络通信框架,支持多种传输协议如TCP...开发者可以根据实际应用场景选择合适的编码策略,并结合Mina提供的工具类轻松实现高效的编码解码逻辑。

    微信小程序 Web MINA框架下载.rar

    3. **桥接层(Bridge Layer)**:连接视图层和逻辑层,负责数据的同步和通信。开发者可以通过调用API,将数据从逻辑层传递到视图层,或者从视图层接收用户交互信息。 4. **微信开发工具(WeChat Developer Tools)*...

    mina 包 socket 框架

    阻塞模式基于传统的Socket API,适合处理简单、同步的通信场景;而非阻塞模式则利用了NIO(Non-blocking I/O),适合处理高并发、低延迟的网络应用。非阻塞模式下,当I/O操作没有准备好时,线程不会被阻塞,而是可以...

    spring mina

    - **Spring Bean管理**:Spring Mina允许通过Spring的IoC容器管理Mina的组件,如Acceptor、Filter、Codec等,实现依赖注入和配置管理。 - **AOP支持**:Spring Mina利用Spring的AOP(面向切面编程)特性,可以方便...

    mina聊天室

    《mina聊天室:基于mina框架实现聊天应用的探索与实践》 mina聊天室是一个使用Apache Mina框架构建的简易聊天应用程序。Apache Mina是一个高度可扩展的网络通信框架,它简化了开发高性能、高并发的网络应用的过程。...

    mina高性能Java网络框架.zip

    `Filter`是MINA中的数据处理链,通过定义一系列过滤器实现数据的预处理和后处理。`Handler`则负责具体业务逻辑的处理,是用户自定义的接口,实现了对网络事件的响应。 2. **非阻塞I/O** MINA基于Java NIO(Non-...

    mina_android

    3. 可能的依赖库,如`slf4j-android.jar`:Mina可能使用了SLF4J(简单日志门面)作为日志框架,为了在Android上运行,可能需要使用特定的实现,如`slf4j-android.jar`。 使用这些库,开发者可以在Android应用中构建...

    MINA中文教程

    2. **联机游戏**:更复杂的示例可能涉及到多人在线游戏,MINA可以处理多个玩家之间的交互,包括数据同步、角色移动、战斗等。这展示了MINA处理大规模并发连接和复杂数据流的能力。 MINA中文教程详细涵盖了这些概念...

    Apache_Mina_Server_2.0中文参考手册

    这是因为Mina框架在实现网络通信时,大量使用了Java的IO流和线程并发控制机制。其中,java.util.concurrent包是Java 5.0引入的一套强大的并发API,它包含了一系列线程安全的集合类、同步器以及并发工具,这些是开发...

    mina客户端例子

    在这个"mina客户端例子"中,我们将探讨如何利用MINA构建一个简单的客户端,实现基于NIO(Non-blocking I/O)的游戏开发和即时通讯工具。 首先,让我们了解NIO。在Java中,传统的I/O模型是阻塞的,这意味着当进行...

    mina长连接

    《mina长连接:Android与服务端的高效通讯实践》 ...对于需要实时数据同步和高并发处理的项目,mina是一个非常优秀的解决方案。通过深入理解和熟练运用mina框架,开发者可以构建出更加健壮、高效的网络应用。

Global site tag (gtag.js) - Google Analytics