From a68dbdd535f69e72c6f5af5aad27e3aaafc51841 Mon Sep 17 00:00:00 2001 From: liuxiaobo <1224730913@qq.com> Date: Thu, 29 May 2025 17:34:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9gate=20address=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gate/config/config.go | 12 +++++------- server/gate/server/service.go | 7 ++++++- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/server/gate/config/config.go b/server/gate/config/config.go index 472ee8d..d1985de 100644 --- a/server/gate/config/config.go +++ b/server/gate/config/config.go @@ -9,17 +9,16 @@ import ( ) const ( - gateKey = "gate_config" - gateAddress = "114.132.124.145" - gatePort = "5100" + gateKey = "gate_config" + gateAddress1 = "114.132.124.145:5100" + gateAddress2 = "114.132.124.145:5101" ) var Command *config.Command var Cfg *config.Common[GateConfig] type GateConfig struct { - Address string `json:"address"` // 网关地址 - Port string `json:"port"` + Address []string `json:"address"` // 网关地址 } func initLog() { @@ -43,8 +42,7 @@ func LoadConfig(GitCommit, GitBranch, BuildDate string) { if err = config.LoadSpecialConfig[GateConfig](rdb, gateKey, Cfg); err != nil { log.DebugF("load config:empty etcd key") Cfg.Special = &GateConfig{ - Address: gateAddress, - Port: gatePort, + Address: []string{gateAddress1, gateAddress2}, } if bs, err := json.Marshal(&Cfg.Special); err == nil { err = rdb.Set(context.Background(), gateKey, string(bs), 0).Err() diff --git a/server/gate/server/service.go b/server/gate/server/service.go index b0f1354..cde86aa 100644 --- a/server/gate/server/service.go +++ b/server/gate/server/service.go @@ -65,7 +65,12 @@ func newGateService(serviceId int) *GateService { return nil } - wsAddress := fmt.Sprintf("%v:%v", config.Cfg.Special.Address, config.Cfg.Special.Port) + addressPos := serviceId - config.Command.ServiceId + if len(config.Cfg.Special.Address) <= addressPos { + log.FatalF("Special address number must be greater than %d", addressPos) + return nil + } + wsAddress := config.Cfg.Special.Address[addressPos] s.wss = ws.NewWsServer(wsAddress, s.WsOnMessage, s.WsOnDisconnect) s.bindService = userBindService.NewUserBindService(model.UserRedis, s.ServiceEtcd())