mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-04 15:32:26 +08:00
1.离线玩家数据加分布式锁操作
2.修复聊天记录错乱 3.修复重启服务器后无法登录
This commit is contained in:
@@ -23,12 +23,12 @@ import (
|
||||
|
||||
const (
|
||||
ConnSynPacketFreqLimit = 100 // 连接建立握手包每秒发包频率限制
|
||||
RecvPacketFreqLimit = 100 // 客户端上行每秒发包频率限制
|
||||
RecvPacketFreqLimit = 200 // 客户端上行每秒发包频率限制
|
||||
SendPacketFreqLimit = 1000 // 服务器下行每秒发包频率限制
|
||||
PacketMaxLen = 343 * 1024 // 最大应用层包长度
|
||||
ConnRecvTimeout = 30 // 收包超时时间 秒
|
||||
ConnSendTimeout = 10 // 发包超时时间 秒
|
||||
MaxClientConnNumLimit = 2 // 最大客户端连接数限制
|
||||
MaxClientConnNumLimit = 1000 // 最大客户端连接数限制
|
||||
)
|
||||
|
||||
var CLIENT_CONN_NUM int32 = 0 // 当前客户端连接数
|
||||
|
||||
@@ -295,7 +295,9 @@ func (k *KcpConnectManager) sendMsgHandle() {
|
||||
GameMsg: gameMsg,
|
||||
})
|
||||
case mq.ServerUserOnlineStateChangeNotify:
|
||||
// 收到GS玩家离线完成通知 唤醒存在的顶号登录流程
|
||||
// 收到GS玩家离线完成通知
|
||||
logger.Debug("global player online state change, uid: %v, online: %v, gs appid: %v",
|
||||
serverMsg.UserId, serverMsg.IsOnline, netMsg.OriginServerAppId)
|
||||
if serverMsg.IsOnline {
|
||||
k.globalGsOnlineMapLock.Lock()
|
||||
k.globalGsOnlineMap[serverMsg.UserId] = netMsg.OriginServerAppId
|
||||
@@ -308,6 +310,8 @@ func (k *KcpConnectManager) sendMsgHandle() {
|
||||
if !exist {
|
||||
continue
|
||||
}
|
||||
// 唤醒存在的顶号登录流程
|
||||
logger.Info("awake interrupt login, uid: %v", serverMsg.UserId)
|
||||
kickFinishNotifyChan <- true
|
||||
}
|
||||
}
|
||||
@@ -400,6 +404,7 @@ func (k *KcpConnectManager) getPlayerToken(req *proto.GetPlayerTokenReq, session
|
||||
userId: uid,
|
||||
kickFinishNotifyChan: kickFinishNotifyChan,
|
||||
}
|
||||
logger.Info("run local interrupt login wait, uid: %v", uid)
|
||||
<-kickFinishNotifyChan
|
||||
}
|
||||
k.globalGsOnlineMapLock.RLock()
|
||||
@@ -421,6 +426,7 @@ func (k *KcpConnectManager) getPlayerToken(req *proto.GetPlayerTokenReq, session
|
||||
userId: uid,
|
||||
kickFinishNotifyChan: kickFinishNotifyChan,
|
||||
}
|
||||
logger.Info("run global interrupt login wait, uid: %v", uid)
|
||||
<-kickFinishNotifyChan
|
||||
}
|
||||
// 关联玩家uid和连接信息
|
||||
|
||||
Reference in New Issue
Block a user