通讯主线程GVServer

基于NIO的消息路由的实现(四) 服务端通讯主线程(1)

放肆的年华 提交于 2020-11-11 09:32:36
一、简单介绍: 服务端通讯主线程是消息路由服务的启动类,其主要作用如下: 1、初始化相关配置; 2、根据配置的ip和port创建tcp服务; 3、接收客户端连接,并给客户端分配令牌; 4、接收客户端的登录请求,并将客户端相关信息(令牌、客户端登录标识、最后访问时间、当前token所使用的通道,保存到缓冲区) 5、接收客户端的报文请求,并添加到通讯队列,等待处理; 6、接收来自各处的指令发送请求,并发送至相关通道; 二、详细介绍: 1、启动方法:首先加载配置信息;然后启动主线程、通讯报文消费线程(处理通讯类报文)、超时、失效通道回收线程(进行超时和失效通道的回收工作)、短消息消费者线程(专门针对短消息队列进行处理的线程)。尤其是OP_WRITE,在OP_WRITE之后,必须将selector注册为OP_READ,否则会一直循环下去,死循环。 public static void main(String arg[]) throws Exception { //初始化配置数据 Config cfg = new Config(arg[0]); final GVServer gvServer = new GVServer(); //启动ServerSocket通道 if (gvServer.initServer(cfg)) { ExecutorService threadPool =