This commit is contained in:
hahwu 2025-12-22 16:06:08 +08:00
parent d3fde0949a
commit d16e2b3e25
4 changed files with 35 additions and 8 deletions

View File

@ -27,14 +27,14 @@ func HandShake(a *Agent) {
log.Debug("HandShake GobMarshal err %v", err)
return
}
// log.Debug("握手 server id :%d", conf.Server.ServerID)
log.Debug("握手 server id :%d", conf.Server.ServerID)
a.WriteMsg(data)
}
// 握手回调
func HandShakeRecv(a *Agent, m *msg.Msg) error {
ServerId := m.From
// log.Debug("收到握手回复 ServerId %v", ServerId)
log.Debug("收到握手回复 ServerId %v", ServerId)
a.ServerId = ServerId
serverAgent.Store(ServerId, a)

View File

@ -5,6 +5,7 @@ import (
"server/game/mod/friend"
limitedTimeEvent "server/game/mod/limited_time_event"
"server/game/mod/msg"
"sync"
)
type PlayerSimpleData struct {
@ -49,6 +50,7 @@ type VarUserData struct {
Upvote int
Chip int
Kiss int
mu sync.Mutex
}
type VarExpireData struct {

View File

@ -75,6 +75,7 @@ func (m *MessageMgr) MessageMgrInit() {
m.Use(TimeoutMiddleware(5 * time.Second))
if conf.Server.ServerType == "center" {
m.RegisterHandler(msg.HANDLE_MOD_PLAYER_LOGIN, MessageHandlerFunc(PlayerLoginHandler))
m.RegisterHandler(msg.HANDLE_MDO_PLAYER_LOGOUT, MessageHandlerFunc(PlayerLogoutHandler))
m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(CenterPlayerMsgHandler))
m.RegisterHandler(msg.HANDLE_MOD_COMSUME_MSG, MessageHandlerFunc(ComsumerMsgHandler))
} else {
@ -102,13 +103,35 @@ func PlayerLoginHandler(data *msg.Msg) (interface{}, error) {
Messages: []*msg.Msg{},
}
}
messageMgrData.PlayerList[int64(data.From)] = data.Extra.(int)
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.Unlock()
for _, message := range messages.Messages {
err := SendMsgToNode(message, node)
if err != nil {
log.Error("Failed to send message to player %d: %v", data.From, err)
}
}
return nil, nil
}
func PlayerLogoutHandler(data *msg.Msg) (interface{}, error) {
messageMgrData := getData()
messageMgrData.mu.Lock()
defer messageMgrData.mu.Unlock()
delete(messageMgrData.PlayerList, int64(data.From))
log.Debug("[Middleware] Player logout success player id: %v", data.From)
return nil, nil
}
func ComsumerMsgHandler(data *msg.Msg) (interface{}, error) {
messageMgrData := getData()
Message, ok := messageMgrData.MessageList[int64(data.From)]
Message, ok := messageMgrData.MessageList[int64(data.To)]
if !ok {
return nil, nil
}

View File

@ -24,6 +24,8 @@ const (
HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息
HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息
HANDLE_MOD_COMSUME_MSG = 20004 // 消费消息
HANDLE_MOD_CLUSTER_SYNC = 20005 // 集群同步消息
HANDLE_MDO_PLAYER_LOGOUT = 20006 // 玩家登出消息
)
const (