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" }