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();
輸出日誌:伺服器啟動成功,正在執行
複製程式碼