美文网首页
MINA线程

MINA线程

作者: 颜雨峰_44b6 | 来源:发表于2018-12-20 17:20 被阅读0次

    MINA 网络架构:

    客户端到服务器端之间的交互流程

    从线程的角度梳理一下,总共有三类线程:

    一、IoAcceptor 监听线程

    这里有一个线程池,每监听一个端口,从线程池中拿一个线程监听

    二、IoProcessor IO处理线程

    当监听线程监套接字上有连接请求时,从IOProcessor线程池中拿一个线程来处理IO,线程数都是有限制,当池子中没有空闲的线程,那么这个请求就会丢在堵塞队列中排队,等待空闲线程

    三、]IoHandler 业务处理线程

    这个是可选的,我目前接触到的游戏都是没单独配置,也就是跟上面是同一个线程池

    消息识别(也就是消息接收)步骤,1、将网络中收到的数据放到IOBUFFER缓冲区中 2、尝试从当前缓冲区中识别消息,这个是重复的过程,如果消息未到就会重复步骤1  3、消息识别出来并且数据全部到达,然后根据消息定义的规则读取消息,贴一个咱们游戏中的实现:

    你如果有服务器代码的话是GameDecoder.java这个类

    服务器消息发送给客户端:

    这个是GameEncoder.java

    消息的识别和发送都是在IO线程池中处理的。

    另外,一般大型MMORPG游戏会将识别的消息放到各种线程组中去处理。比如,登录消息放到登录线程组,场景线程组,聊天线程组等等。这些线程是游戏业务的范畴,跟mina的线程是两回事。

    相关文章

      网友评论

          本文标题:MINA线程

          本文链接:https://www.haomeiwen.com/subject/yqqukqtx.html