3.Service处理(业务模块处理,应答给终端content)
1)获取不需要返回给终端的指令列表(cmdID列表 0x80,0x81,0x82,0x83)(Spring配置文件初始配置)
2)如果需要返回指令给终端:按特定的规则填充content
3) 适配部分cmId,不同的ID有不同的content填充规则(协议指定)
4)通用业务处理 :
【1】若XreaMsg为null,直接返回false,不执行下列操作
【2】通过serverInfo(Spring初始XML填充),获取到传输类型(UDP or TCP ),获取生产项目类型(如XGIT_ROAD_XCMG),获取服务网关代理地址,终端ID,adress
【3】设置当前连接终端标识为终端ID,并判断该终端设备是否在缓存中。如果不在缓存中,先判断设备是否在product表中,如果在producet表中,则更新连接池(一个map,存的是设备连接对象为value,设备编号为key,保持连接锚定),并执行登录操作。如果不在product表中,则直接将业务处理方法返回false。不执行余下操作,进而将content置为null。 如果在缓存中,则直接更新连接池。
【4】判断是否写入kafka(配置文件配置),如果需要写入kafka,则投递XreaMsg到kafka。判断是否转发到emp,如需,则转发。
5) content为null则不应答,content不为null则应答终端