diff --git a/modules/gateway/agent.go b/modules/gateway/agent.go index ef6f7f6e0..4fbf3f03b 100644 --- a/modules/gateway/agent.go +++ b/modules/gateway/agent.go @@ -56,7 +56,6 @@ type Agent struct { closeSignal chan bool state int32 //状态 0 关闭 1 运行 2 关闭中 wg sync.WaitGroup - hlock sync.RWMutex protoMsg map[string]int64 } @@ -96,33 +95,28 @@ locp: var code pb.ErrorCode code, err = this.secAuth(msg) if err == nil { - this.gateway.Debugf("----------2 agent:%s uId:%s MainType:%s SubType:%s ", this.sessionId, this.uId, msg.MainType, msg.SubType) - if this.uId != "" { - key := this.uId + msg.MainType + msg.SubType // 加锁 - if v, ok := this.protoMsg[key]; ok { - if v != 0 && configure.Now().Unix()-v < 2 { - // 返回错误码 - this.hlock.Lock() - this.protoMsg[key] = configure.Now().Unix() - this.hlock.Unlock() - data, _ := anypb.New(&pb.NotifyErrorNotifyPush{ - ReqMainType: msg.MainType, - ReqSubType: msg.SubType, - Arg: msg.Data, - Code: pb.ErrorCode_InsufficientPermissions}) - err = this.WriteMsg(&pb.UserMessage{ - MainType: comm.MainTypeNotify, - SubType: comm.SubTypeErrorNotify, - Data: data, - }) - continue - } - } - this.hlock.Lock() - this.protoMsg[key] = configure.Now().Unix() - this.hlock.Unlock() + // this.gateway.Debugf("----------2 agent:%s uId:%s MainType:%s SubType:%s ", this.sessionId, this.uId, msg.MainType, msg.SubType) + key := msg.MainType + msg.SubType // 加锁 + if v, ok := this.protoMsg[key]; ok { + if v != 0 && configure.Now().Unix()-v < 2 { + // 返回错误码 + this.protoMsg[key] = configure.Now().Unix() + data, _ := anypb.New(&pb.NotifyErrorNotifyPush{ + ReqMainType: msg.MainType, + ReqSubType: msg.SubType, + Arg: msg.Data, + Code: pb.ErrorCode_InsufficientPermissions}) + err = this.WriteMsg(&pb.UserMessage{ + MainType: comm.MainTypeNotify, + SubType: comm.SubTypeErrorNotify, + Data: data, + }) + continue + } } + this.protoMsg[key] = configure.Now().Unix() + if err := this.messageDistribution(msg); err != nil { this.gateway.Errorf("messageDistribution err:%v", err) go this.Close() @@ -372,14 +366,9 @@ func (this *Agent) messageDistribution(msg *pb.UserMessage) (err error) { log.Field{Key: "req", Value: fmt.Sprintf("%s:%s %v", req.MainType, req.SubType, req.Message.String())}, log.Field{Key: "reply", Value: reply.String()}, ) - - if this.uId != "" { - key := this.uId + msg.MainType + msg.SubType - this.hlock.Lock() - if v, ok := this.protoMsg[key]; ok && v != 0 { // 发送消息 协议解锁 - v = 0 - } - this.hlock.Unlock() + key := msg.MainType + msg.SubType + if v, ok := this.protoMsg[key]; ok && v != 0 { // 发送消息 协议解锁 + v = 0 } if reply.Code != pb.ErrorCode_Success { data, _ := anypb.New(&pb.NotifyErrorNotifyPush{ diff --git a/modules/mail/module.go b/modules/mail/module.go index ee2ed8461..17b13576e 100644 --- a/modules/mail/module.go +++ b/modules/mail/module.go @@ -154,7 +154,7 @@ func (this *Mail) SendMailByCid(session comm.IUserSession, cid string, res []*pb // 获取额外配置 conf := this.configure.GetMailConf(cid) - if conf != nil { + if conf == nil { this.Errorf("can't found mail by cid: %s", cid) return false }