diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index c0752752..82aacc66 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -201,28 +201,28 @@ func ClusterSyncHandler(data *msg.Msg) (interface{}, error) { func PlayerLoginHandler(data *msg.Msg) (interface{}, error) { // 关闭 Worker Pool messageMgrData := getMessageData() + messageMgrData.mu.Lock() - messageMgrData.PlayerList[int64(data.From)] = data.Extra.(int) + node := data.Extra.(int) + messageMgrData.PlayerList[int64(data.From)] = node if _, ok := messageMgrData.MessageList[int64(data.From)]; !ok { messageMgrData.MessageList[int64(data.From)] = &MessageList{ Messages: []*msg.Msg{}, } } messageMgrData.mu.Unlock() - log.Debug("[Middleware] Player login success player id: %v, node: %v", data.From, data.Extra.(int)) - node := data.Extra.(int) - messageMgrData.PlayerList[int64(data.From)] = node // 对玩家消息列表加锁 messages := messageMgrData.MessageList[int64(data.From)] messages.mu.Lock() defer messages.mu.Lock() // 发送离线消息 - log.Debug("[Middleware] Player sync logout message player id: %v, len: %d", data.From, len(messages.Messages)) + len := len(messages.Messages) for _, message := range messages.Messages { go sendMessageAsync(message, node) } + log.Debug("[Middleware] Player sync logout message player id: %v, len: %d", data.From, len) return nil, nil }