From 4e63b109ae1b6411c466f7019e4f2a0d9d52700e Mon Sep 17 00:00:00 2001 From: luying Date: Thu, 30 Dec 2021 15:27:35 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9E=E6=8E=A5=EF=BC=9A=E6=B7=BB=E5=8A=A0qu?= =?UTF-8?q?eryEnter=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app.ts | 9 +++++++-- game-server/app/services/redisService.ts | 11 +++++++++++ game-server/config/servers.ts | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/game-server/app.ts b/game-server/app.ts index 929c09e87..3bb8a5124 100644 --- a/game-server/app.ts +++ b/game-server/app.ts @@ -235,8 +235,12 @@ app.configure(function () { if (app.isMaster()) { // app.use(createRobotPlugin({scriptFile: __dirname + '/robot/robot.js'})); + + app.event.on('add_servers', (server) => { - redisService.setConnectors(server); + if(server.isGM != 'true') { + redisService.setConnectors(server); + } }) app.event.on('replace_servers', (server) => { redisService.setConnectors(server); @@ -244,8 +248,9 @@ if (app.isMaster()) { app.event.on('remove_servers', (server) => { redisService.removeConnectors(server); }) - app.event.on('start_all', (servers) => { + app.event.on('start_all', () => { // 全部服务器启动完毕后初始化 redis 数据 + redisService.checkConnectors(); redisService.readDataBase(); redisService.clearComBtlQueue(); redisService.clearChannelServers(); diff --git a/game-server/app/services/redisService.ts b/game-server/app/services/redisService.ts index 9ce64eca6..25a74c4a1 100644 --- a/game-server/app/services/redisService.ts +++ b/game-server/app/services/redisService.ts @@ -471,6 +471,17 @@ export async function removeConnectors(servers: string[]) { } } +export async function checkConnectors() { + let servers = pinus.app.getServersByType('connector'); + let redisServers = await redisClient().hgetallAsync(REDIS_KEY.SYS_SERVER); + for(let id in redisServers) { + let server = servers.find(cur => cur.id == id); + if(!server || server['isGM'] == 'true') { + await redisClient().hdelAsync(REDIS_KEY.SYS_SERVER, id); + } + } +} + /*************** 将connector服插入redis *******/ diff --git a/game-server/config/servers.ts b/game-server/config/servers.ts index 2b04e7d5d..2c71282bd 100644 --- a/game-server/config/servers.ts +++ b/game-server/config/servers.ts @@ -4,7 +4,7 @@ module.exports = { { 'id': 'connector-server-1', 'port': 4050, 'clientHost': '127.0.0.1', 'host': '127.0.0.1', 'clientPort': 3050, 'frontend': true }, { 'id': 'connector-server-2', 'port': 4051, 'clientHost': '127.0.0.1', 'host': '127.0.0.1', 'clientPort': 3051, 'frontend': true }, { 'id': 'connector-server-3', 'port': 4052, 'clientHost': '127.0.0.1', 'host': '127.0.0.1', 'clientPort': 3052, 'frontend': true }, - { 'id': 'connector-server-gm', 'port': 4099, 'clientHost': '127.0.0.1', 'host': '127.0.0.1', 'clientPort': 3099, 'frontend': true } + { 'id': 'connector-server-gm', 'port': 4099, 'clientHost': '127.0.0.1', 'host': '127.0.0.1', 'clientPort': 3099, 'frontend': true, 'isGM': true } ], 'chat': [ { 'id': 'chat-server-1', 'host': '127.0.0.1', 'port': 6050, "args": " --inspect=9237" }