ServerServiceManager服务启动管理器,单例,包含一个Map<String serviceId,IService> 方法:注册服务,获取服务,移除服务
GlobalManager 各种全局的业务管理器、公共服务实例的持有者,负责各种管理器的初始化和实例的获取
LocalNetService 本地网络服务
GameServer server = new GameServer();
super(ServerServiceManager.SERVICE_ID_ROOT);
this.globalManager = new GlobalManager();
this.localNetService = new LocalNetService();
server.startServer();
输出日志:服务器启动中
init(configFile);
initSpring(); 初始化spring容器
globalManager.init(configFile);
//从spring中获取localSpringBeanManager的实例,然后设置到LocalMananger里面的localSpringBeanManager成员变量中。localSpringServiceManager,localSpringServicerAfterManager
initLocalManger();
//初始化本地服务// //初始化game-excutor更新服务
initLocalService();
//初始化消息处理器
//根据使用的协议的不同,初始化tcp和udp处理队列 gameTcpMessageProcessor,GameUdpMessageOrderProcessor,并将其添加到LocalMananger中
initNetMessageProcessor();
//扩展使用(没有内容)
initGameManager();
start();
//根据更新器执行类型启动更新服务updateService.start();
globalManager.start();
//首先初始化处理器initChannelInitializer();根据 GameServerConfig,创建GameNettyTcpServerService,GameNettyUdpServerService,GameNettyRPCService
localNetService.startup();
//创建服务器启动结束服务 并调用启动startup方法,并且添加到了LocalManager中
LocalMananger.getInstance().create(GamerServerStartFinishedService.class, GamerServerStartFinishedService.class);
//注册停服监听器,用于执行资源的销毁等停服时的处理工作
addShutdownHook();
//游戏服务器运行时数据,打开服务
GameServerRuntime.setOpenOn();
输出日志:服务器启动成功,正在运行