网游服务器框架(1)Session


因为不想去处理网络IO 所以偷懒直接使用了 libevent作为网络库。。(但是后果就是很多莫名其妙的bug无法明白。以后尝试替换

首先  每一个新连接 都会分配一个 SessionID 作为流水号增长。
相当于一个Client
然后统一放到一个Singlton的SessionManager里做统一处理 。使用map存储 SessionID作为key

每个Session都有一个接受数据缓存区。收到数据便往添加到缓存区尾部。然后尝试去parse一个包。
每个包包含

byte     字节序
int      全包长度 (包含字节序那1字节
short    客户端包序列
short    协议包类型
byte     协议版本
short    16位校验码
int      包数据长度
void*    包数据

其实每个包都带字节序有些多余。可以尝试在第一个包里确定。
解析后,将解析过的数据从缓存区中移除。
得到包后记录得到时间, 将包放到一个环形队列中,等待被执行。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MINA(Apache MINA,全称Apache Multipurpose Internet Networking Architecture)是一个基于Java NIO(Non-blocking I/O)的网络应用框架,它提供了一组高效、可靠的网络通信及应用程序开发工具,使得开发高性能、可伸缩、可重用和易于维护的网络应用程序变得更加简单和容易。 MINA框架的功能层主要包括以下几个部分: 1. I/O Service层:提供了一组高效、可靠的网络通信服务,包括TCP、UDP、SSL等多种协议支持,并且支持异步非阻塞I/O模型,可以处理大量的并发连接请求。 2. Filter层:提供了一组可插拔的过滤器,用于在I/O Service层和应用层之间进行数据的拦截、处理和转换,可以实现诸如协议解析、消息编解码、数据加解密、压缩解压等功能。 3. Codec层:提供了一组通用的编解码器(Codec),用于将复杂的数据结构转换为字节流,或将字节流转换为具体的数据结构,可以大大简化数据传输和处理的复杂度。 4. Session层:提供了一组Session管理机制,用于管理客户端与服务器之间的连接会话,可以方便地实现会话的创建、销毁、状态维护等操作。 5. Handler层:提供了一组可扩展的事件处理器(handler),用于处理各种事件,包括连接事件、读写事件、异常事件等,并且支持事件的链式调用,可以实现复杂的业务处理逻辑。 通过这些功能层的组合使用,MINA框架可以轻松地实现各种网络应用程序的开发和扩展,包括聊天室、实时游戏、即时通讯、RPC远程调用等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值