1.GM的本质:gm说白了就是能调用到我们在游戏服写好的GM接口。java语言对于反射之类的支持很好,因此GM_levelUp这样子命名即可,写好我们的协议处理逻辑。
2.这个GM接口有2个地方使用:
1.是客户端输入gm指令,其实就是通过协议,我们直接处理。
2.web后台使用gm,管理端作客户端直接发送http请求,游戏服的HttpServer收到请求处理即可。
3.web调用游戏服,那这就涉及到了进程间的通信,毕竟gm后台是web服务。
好在是:netty直接支持http服务,那我们可以在游戏服启动时,顺手启动一个http服务即可,为了不阻塞游戏服,需要单独开一个线程启动,当然了,这个gm是内部人使用,其实并发需求很低,因此boss和worker线程数设置为1即可。其实业务处理,依然使用的是游戏服的线程池,只不过监听IO是一个NioEventLoop,性能绝对是足够的。
4.web服的话,其实就是发送http请求,GameServer下的HttpServer就可以接到请求,进行相应的处理即可。
总结:
GM整体架构就是这么简单。