client和server的连接: 叫session
Session State:
- Connected : the session has been created and is available
- Idle : the session hasn't processed any request for at least a period of time (this period is configurable)
- Idle for read : no read has actually been made for a period of time
- Idle for write : no write has actually been made for a period of time
- Idle for both : no read nor write for a period of time
- Closing : the session is being closed (the remaining messages are being flushed, cleaning up is not terminated)
- Closed : The session is now closed, nothing else can be done to revive it.
状态转换图:
Session需要配置的参数:
Many different parameters can be set for a specific session :
- receive buffer size
- sending buffer size
- Idle time
- Write timeOut
Container
在session中,有一个container,可以放置key/value属性(是个map结构);
如果要用自己的container,譬如不用map,或者大尺寸value要放在磁盘上,要能够自己替换这个container
实现这个接口:
public interface IoSessionDataStructureFactory {
/**
* Returns an {@link IoSessionAttributeMap} which is going to be associated
* with the specified <tt>session</tt>. Please note that the returned
* implementation must be thread-safe.
*/
IoSessionAttributeMap getAttributeMap(IoSession session) throws Exception;
}
Filter chain
Handler
分享到:
相关推荐
Apache Mina是一个开源的网络通信框架,常用于构建高性能、高效率的服务端应用程序,尤其在Java平台上。在本文中,我们将深入探讨Mina的核心概念,包括连接管理、心跳机制以及断线重连策略。 首先,让我们理解"Mina...
springboot集成mina做分布式的soket服务,思路:用java线性安全的集合存储mina session到本地服务器;同时用redis等nosql缓存mina session存储服务器的ip,session的id等信息到redis上;应用服务器直接用restful等...
1. **Session**: Mina中的Session是连接管理的核心对象,代表客户端与服务器之间的一个会话。它提供了读写数据、管理连接状态和事件监听等功能。 2. **Filter链**: Mina使用Filter链模式处理网络通信。Filter可以...
2. **Session**:Session对象代表了客户端与服务器之间的连接。它负责管理会话状态,并提供读写操作接口。 3. **IoHandler**:IoHandler是处理网络事件的主要接口,如连接建立、数据接收、连接关闭等。你可以实现这...
import org.apache.mina.core.session.IdleStatus; import org.apache.mina.core.future.ConnectFuture; import org.apache.mina.core.service.DefaultTransportMetadata; import org.apache.mina.core.service....
**Spring Boot 整合Mina实现串口通信详解** 在Java开发中,有时我们需要与硬件设备进行串口通信,例如读取传感器数据或控制工业设备。Spring Boot作为一款轻量级的框架,使得快速构建应用变得简单。而Mina则是一款...
1. **Session**:在Mina中,Session代表了应用程序与远程客户端之间的一个连接。它包含了会话的状态信息以及用于读写数据的方法。 2. **Filter**:过滤器是Mina中的重要概念,它允许我们对网络通信的数据进行处理...
1. **Session**: 在Mina中,Session代表一个连接。它封装了网络连接的细节,如网络套接字,并提供了读写数据的方法。 2. **IoHandler**: IoHandler是处理网络事件的主要接口,它定义了当有数据读取、写入、连接建立...
当客户端连接建立后,Mina会为每个连接创建一个Session,用于管理与该客户端的交互。在这个"mina demo"中,我们可能看到服务端定义了一个Handler类,它处理接收到的数据,并生成相应的响应。Handler类是Mina的核心...
2. **Session对象**:在Mina中,每个网络连接对应一个Session对象,用于存储连接状态和管理网络事件。 3. **Filter Chain**:Mina的过滤器链是其核心特性之一,它允许开发者插入自定义的过滤器来处理输入和输出数据...
**mina自定义编解码器详解** mina是一个Java开发的网络通信框架,广泛应用于TCP和UDP协议的服务器和客户端开发。在mina框架中,编解码器(Codec)扮演着至关重要的角色,它负责将应用层的数据转换为网络传输的字节...
当连接断开时,`sessionClosed()`方法会被触发。 在"Mina开发实例"中,项目使用了Maven构建系统。Maven帮助开发者管理依赖,使得引入和更新Mina库以及其他相关库变得简单。在`pom.xml`文件中,可以看到对Mina库的...
例如,创建Acceptor来监听特定端口,当有新的连接请求时,MINA会自动创建一个Session对象,并调用IoHandler的事件处理方法。 ```java public class SimpleServerHandler implements IoHandler { @Override ...
在Mina中,实现长连接的关键在于编写正确的`SessionHandler`,这个处理器会监听并处理连接的各种事件,如`sessionCreated`、`messageReceived`、`sessionClosed`等。当客户端发起连接请求时,服务器端的`Acceptor`会...
SpringBoot整合Mina是一个常见的Java开发任务,它涉及到SpringBoot框架与Apache Mina网络通信库的集成。Mina是一个轻量级、高性能的网络应用框架,主要用于构建服务器端的网络应用,如TCP/IP和UDP协议的服务。而...
当客户端连接建立后,Mina 将自动创建一个新的 Session 对象。 6. **Client 端实现** 在 `socket_client` 文件夹中,源代码将展示如何建立到 Mina 服务器的连接。客户端同样需要配置过滤器链和协议处理器,然后...
Mina2.0框架源码剖析 Mina2.0是一个基于Java的网络应用框架,提供了一个简洁、灵活的API,帮助开发者快速构建高性能的网络应用程序。下面是Mina2.0框架源码剖析的相关知识点: 一、Mina2.0框架概述 Mina2.0是一个...
import org.apache.mina.core.session.IdleStatus; import org.apache.mina.core.session.IoSession; import org.apache.mina.transport.socket.nio.NioSocketAcceptor; public class MinaServer { public static ...
此外,IoService还提供了管理IoSession的方法,如打开、关闭和获取Session等。 总结起来,Apache Mina是一个强大且灵活的网络通信框架,通过其事件驱动和异步IO模型,简化了网络应用的开发过程。IoService、...
1. **Session**:Mina中的Session代表了客户端和服务端之间的连接。它封装了与网络连接相关的所有信息,如网络套接字、缓冲区和事件处理器。 2. **Filter**:过滤器是Mina的核心概念之一,它们允许你在数据传输过程...