1.工作中用到mina,需要保存一个会话对象以保存一些数据
2.代码都是照搬的,但是在这个方法
@Override
public void messageReceived(IoSession session, Object message) throws Exception {
ClientRequest clientRequest = (ClientRequest) message;
AppSession appSession = AppSession.getInstance(session);
if (appSession == null) {
return;
}
GameServer.msgDispatcher.dispatchMsg(appSession, clientRequest);
}
中做了这么个操作
if (appSession == null) {
return;
}
3.客户端在创建套接字后,立即发送数据,结果出现了等待的死机现象,一直停留在等待获取数据状态
4.分析了半天定位到了上面那段代码。为什么appSession 为空呢,
在
public void sessionOpened(IoSession session) throws Exception {
AppSession appSession = new AppSession(session);
appSession.holdInIoSession();
logger.info("a session create from ip {}", session.getRemoteAddress());
}
这段代码中已经将AppSession 作为playload放入IoSession里了
5.但是就是获取不到,打断点跟踪的时候又可以到值,估计是由于客户端发送数据太快,服务段的put操作没有完成就获取到客户端的数据请求,进入messageReceived方法,所以暂时在客户端创建连接后停100毫秒,服务端就没有遇到类似的问题了
分享到:
相关推荐
在标题和描述中提到的“mina传输对象的示例”指的是如何在Mina框架下处理和传输自定义的数据对象。Mina允许开发者通过事件驱动和异步I/O模型来高效地构建网络服务。 Mina的核心组件包括: 1. **Session**: 表示...
在Java开发中,Mina(Java Minimal Asynchronous Network Engine)是一个强大的网络编程框架...通过分析Android-Mina-master项目中的代码,我们可以学习到如何在实际应用中解决这些问题,提高网络通信的可靠性和效率。
在mina框架中,编解码器(Codec)扮演着至关重要的角色,它负责将应用层的数据转换为网络传输的字节流,以及将接收到的字节流还原为应用程序可以理解的对象。对于初学者来说,理解和编写自定义的编解码器可能会遇到...
Mina2.0框架源码剖析 Mina2.0是一个基于Java的网络应用框架,提供了一个简洁、灵活的API,帮助开发者快速构建高性能的网络应用程序。下面是Mina2.0框架源码剖析的相关知识点: 一、Mina2.0框架概述 Mina2.0是一个...
这使得这些对象能够被转换为字节流在网络中传输,然后在另一端被还原为原来的对象形式。 序列化是Java提供的一种将对象转换为字节流,以便存储或在网络中传输的技术。`serialVersionUID`字段是一个用于版本控制的...
"MinaDemo"项目可能还包括自定义的编码器和解码器,例如`ProtocolEncoder`和`ProtocolDecoder`,用于将业务数据转化为适合网络传输的格式,并在接收到网络数据时还原成原始信息。 此外,MINA支持事件驱动模型,通过...
我们需要实现ProtocolDecoder和ProtocolEncoder接口,定义如何将输入流转化为对象,以及如何将对象转化为输出流。 4. **创建Handler**:编写一个实现了IoHandler接口的类,该接口包含一个sessionOpened()、message...
通过分析这些文件,可以更具体地了解如何在实际项目中应用Mina的连接、心跳和断线重连机制。不过,具体的实现细节和优化策略需结合代码来进一步学习和理解。 总结起来,Apache Mina提供了一套强大的网络通信框架,...
总的来说,Apache Mina为解决网络通信中的断包和粘包问题提供了强大的工具。通过理解和应用mina_optimize代码,你可以更好地掌握如何在实际项目中规避这些问题,提升网络通信的稳定性和可靠性。在实际开发中,结合...
Apache Mina是一个开源的网络通信应用框架,主要应用于Java平台,它为高性能、高可用性的网络应用程序提供了基础架构。在本文中,我们将深入探讨Mina的高级使用,特别是在文件图片传送、文件发送、XML和JSON报文处理...
Mina的事件驱动特性体现在其事件模型中,它将网络通信过程分解为几个关键阶段,如连接建立、数据传输、关闭连接和Idle事件。`IoFilter`是Mina事件处理链的一部分,允许开发者在数据传输前或后添加额外的处理逻辑,...
本文旨在深入剖析Mina2的核心部分,帮助读者更好地理解和掌握Mina2的工作原理及其在实际开发中的应用。 #### 核心包介绍 Mina2的核心组成部分主要包括以下四个包: 1. **org.apache.mina.core.service**:包含服务...
Apache MINA(Multipurpose Infrastructure for Network Applications)是一个Java框架,专为开发高性能和高度可扩展的网络应用程序而设计。MINA 提供了一种抽象层,允许开发者远离底层的Socket编程,专注于业务逻辑...
MINA提供序列化机制,可以直接将对象作为消息传递,无需手动转换为字节流。这需要实现Serializable接口,并使用ObjectEncoder和ObjectDecoder来编码和解码对象。 5. 扩展学习 除了基础应用,MINA还支持更复杂的...
6. **Transport Layer**:Mina支持多种传输层实现,如TCP、UDP等,这些都抽象为IoAcceptor和IoConnector接口,方便开发者使用。 深入研究源码,你可能会关注以下方面: - **mina-core**模块:这是Mina的核心库,...
当我们遇到"MINA断线重连死锁解决"的问题时,通常涉及到的是网络连接的稳定性和并发处理的复杂性。 MINA框架提供了非阻塞I/O模型,允许处理大量并发连接。然而,在某些情况下,特别是在断线重连的机制中,可能会...
最后,“MinaDemo”可能是Mina框架的一个示例项目,你可以通过运行和分析这个项目,进一步掌握Mina的实战应用。 总结来说,本教程将引导你从理论到实践,掌握Java NIO的基本原理,理解Mina框架的使用,以及如何在...
Mina2.0 快速入门与源码剖析 Mina2.0 是一个基于 Java 的网络应用框架,提供了一个高效、可扩展的网络通信解决方案。下面是 Mina2.0 快速入门与源码剖析的知识点总结: 一、Mina2.0 快速入门 Mina2.0 的快速入门...