diff --git a/gate/net/kcp_connect_manager.go b/gate/net/kcp_connect_manager.go index 36e3e376..d3d70281 100644 --- a/gate/net/kcp_connect_manager.go +++ b/gate/net/kcp_connect_manager.go @@ -150,6 +150,7 @@ func (k *KcpConnectManager) acceptHandle(listener *kcp.Listener) { } conn.SetACKNoDelay(true) conn.SetWriteDelay(false) + atomic.AddInt32(&CLIENT_CONN_NUM, 1) logger.Info("client connect, convId: %v", convId) kcpRawSendChan := make(chan *ProtoMsg, 1000) session := &Session{ diff --git a/gate/net/session.go b/gate/net/session.go index 6e1f3c61..5409ab8d 100644 --- a/gate/net/session.go +++ b/gate/net/session.go @@ -377,7 +377,7 @@ func (k *KcpConnectManager) getPlayerToken(req *proto.GetPlayerTokenReq, session // 封号通知 return loginFailRsp(int32(proto.Retcode_RET_BLACK_UID), true, tokenVerifyRsp.ForbidEndTime) } - clientConnNum := atomic.AddInt32(&CLIENT_CONN_NUM, 1) + clientConnNum := atomic.LoadInt32(&CLIENT_CONN_NUM) if clientConnNum > MaxClientConnNumLimit { logger.Error("gate conn num limit, uid: %v", uid) return loginFailRsp(int32(proto.Retcode_RET_MAX_PLAYER), false, 0)