`

Mina Session属性值设置获取问题

    博客分类:
  • Mina
阅读更多
1. 场景
使用Mina向终端发送消息,需在session里面保存流水号对应的消息对象。
 
a. 下行发送消息,保存消息对象到session. 代码:
int seq = order[0] & 0xFF) << 8) + order[1] & 0xFF;
session.setAttribute(seq, gpsSms);
 
b. 上行发送消息,依据流水号从session中获取消息对象. 代码:
long seq = (response[0] & 0xFF << 8) + response[1] & 0xFF;
GpsSms gpsSms = (GpsSms)session.getAttribute(seq);
 
2. 结论
下行流水号、上行流水号一致且session连接未断开或重置的情况下,并不能依据上行流水获取
到session中保存的消息对象。
 
3. 分析
下行发送消息,保存属性的key:流水号的数据类型为int。上行获取消息,获取属性的key:流水号的
数据类型为long。数据类型不一致。
 
4. 解决方式
上行、下行使用的流水号数据类型保持一致
 
5. 源码
IoSession的实现类AbstractIoSession
//设置属性,上述int型被装箱成Integer
public final Object setAttribute(Object key, Object value) {
        return attributes.setAttribute(this, key, value);
}
 
//获取属性,上述long型被装箱成Long
public final Object getAttribute(Object key) {
        return getAttribute(key, null);
}
 
因此用Long型的数据引用去获取以Integer型为KEY的值,获取结果为null。
分享到:
评论

相关推荐

    mina连接 mina心跳连接 mina断线重连

    Apache Mina是一个开源的网络通信框架,常用于构建高性能、高效率的服务端应用程序,尤其在Java平台上。在本文中,我们将深入探讨Mina的核心概念,包括连接管理、心跳机制以及断线重连策略。 首先,让我们理解"Mina...

    springboot集成mina分布式

    springboot集成mina做分布式的soket服务,思路:用java线性安全的集合存储mina session到本地服务器;同时用redis等nosql缓存mina session存储服务器的ip,session的id等信息到redis上;应用服务器直接用restful等...

    apache-mina-2.0.4.rar_apache mina_mina

    Apache Mina是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。这个"apache-mina-2.0.4.rar"压缩包包含的是Apache Mina 2.0.4版本的源代码,是深入理解和定制Mina的...

    mina心跳包机制

    在Mina的配置中,开发者可以通过设置Filter链来实现心跳包的处理。例如,可以创建一个自定义的Filter,专门负责处理心跳包的发送和接收。在Filter中,可以定义心跳包的发送间隔、超时时间等参数,并在Filter链中适当...

    Mina+Socket通信

    文件"MinaSocket"可能包含了实现上述功能的详细代码,包括服务端的Acceptor配置、过滤器设置、事件处理器编写,以及客户端的Socket连接、数据发送和接收等。通过阅读和理解这些代码,你可以更好地掌握Mina与Socket...

    mina的高级使用,mina文件图片传送,mina发送文件,mina报文处理,mina发送xml和json

    Apache Mina是一个开源的网络通信应用框架,主要应用于Java平台,它为高性能、高可用性的网络应用程序提供了基础架构。在本文中,我们将深入探讨Mina的高级使用,特别是在文件图片传送、文件发送、XML和JSON报文处理...

    mina 断包,粘包问题解决

    本文将深入探讨“mina断包”和“粘包”问题,以及如何通过提供的mina_optimize代码解决这些问题。 首先,我们要理解什么是“断包”和“粘包”。在TCP/IP通信中,数据通常会被拆分成多个数据段进行传输,这在传输...

    MINA_API+MINA_DOC+mina

    MINA (Java IO Network Application Framework) 是一个由Apache软件基金会开发的开源网络通信框架,主要应用于构建高性能、高可用性的网络服务器。这个压缩包包含了MINA API文档、自学手册以及开发指南,对于学习和...

    Mina in Action preview

    3. **Session管理**:学习如何创建、管理和维护Mina中的会话(Session),包括会话属性的设置、会话事件的监听和会话状态的控制。 4. **Protocol Buffers**:Mina支持多种协议,如HTTP、FTP、SMTP等,书中会介绍...

    Mina开发实例(服务端、客户端)DEMO

    Apache Mina是一个高度可扩展的网络通信框架,它允许开发者创建高性能、高效率的服务端和客户端应用程序。在Java世界中,Mina以其简洁的API和灵活性而受到青睐,尤其适用于处理大量的并发连接,如TCP/IP和UDP协议。...

    mina自定义编解码器详解

    **mina自定义编解码器详解** mina是一个Java开发的网络通信框架,广泛应用于TCP和UDP协议的服务器和客户端开发。在mina框架中,编解码器(Codec)扮演着至关重要的角色,它负责将应用层的数据转换为网络传输的字节...

    MINA断线重连死锁解决

    当我们遇到"MINA断线重连死锁解决"的问题时,通常涉及到的是网络连接的稳定性和并发处理的复杂性。 MINA框架提供了非阻塞I/O模型,允许处理大量并发连接。然而,在某些情况下,特别是在断线重连的机制中,可能会...

    mina开发手册与mina完全自学手册.rar

    这份文档可能会详细介绍如何使用Mina构建网络服务,包括服务器端和客户端的设置,事件处理机制,以及如何处理各种网络通信协议。它可能还包含了Mina的配置选项、性能优化技巧以及异常处理策略。 而《mina中文开发...

    mina demo mina jar包

    当客户端连接建立后,Mina会为每个连接创建一个Session,用于管理与该客户端的交互。在这个"mina demo"中,我们可能看到服务端定义了一个Handler类,它处理接收到的数据,并生成相应的响应。Handler类是Mina的核心...

    Mina客户端服务器Demo

    **Mina客户端服务器Demo**是基于Apache Mina框架的一个示例项目,主要展示了如何使用Mina进行网络通信的开发。Apache Mina是一个高度可扩展且轻量级的Java框架,主要用于构建高性能、高效率的网络应用程序,如TCP/IP...

    Mina实现长连接和短连接实例

    在`SessionHandler`中,我们可以设置心跳机制来检测连接是否活跃,防止因网络问题导致的连接超时。 短连接则相对简单,通常适用于一次性或偶尔交互的应用,如HTTP/1.x。在Mina中,短连接的实现只需要在完成数据交换...

    Mina通信框架应用示例

    获取最新版本的MINA库。 - 创建项目:在IDE中创建新项目,并将MINA核心库mina-core添加至项目依赖。 - 编写服务器端代码:实现IoHandler接口,该接口定义了连接建立、消息处理和连接关闭等关键事件的处理方法。...

    Mina入门:mina版之HelloWorld

    1. **Session**:在Mina中,Session代表了应用程序与远程客户端之间的一个连接。它包含了会话的状态信息以及用于读写数据的方法。 2. **Filter**:过滤器是Mina中的重要概念,它允许我们对网络通信的数据进行处理...

    Mina开发之客户端

    1. **Session**: 代表与服务器的连接,它是Mina的核心概念,用于管理与服务器的通信状态,包括读写操作、会话属性等。 2. **Filter Chain**: 过滤器链是Mina的一大特色,它允许开发者插入自定义的过滤器,对数据...

    springboot整合mina

    SpringBoot整合Mina是一个常见的Java开发任务,它涉及到SpringBoot框架与Apache Mina网络通信库的集成。Mina是一个轻量级、高性能的网络应用框架,主要用于构建服务器端的网络应用,如TCP/IP和UDP协议的服务。而...

Global site tag (gtag.js) - Google Analytics