1
This commit is contained in:
parent
d3fde0949a
commit
d16e2b3e25
@ -27,14 +27,14 @@ func HandShake(a *Agent) {
|
|||||||
log.Debug("HandShake GobMarshal err %v", err)
|
log.Debug("HandShake GobMarshal err %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// log.Debug("握手 server id :%d", conf.Server.ServerID)
|
log.Debug("握手 server id :%d", conf.Server.ServerID)
|
||||||
a.WriteMsg(data)
|
a.WriteMsg(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 握手回调
|
// 握手回调
|
||||||
func HandShakeRecv(a *Agent, m *msg.Msg) error {
|
func HandShakeRecv(a *Agent, m *msg.Msg) error {
|
||||||
ServerId := m.From
|
ServerId := m.From
|
||||||
// log.Debug("收到握手回复 ServerId %v", ServerId)
|
log.Debug("收到握手回复 ServerId %v", ServerId)
|
||||||
a.ServerId = ServerId
|
a.ServerId = ServerId
|
||||||
serverAgent.Store(ServerId, a)
|
serverAgent.Store(ServerId, a)
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import (
|
|||||||
"server/game/mod/friend"
|
"server/game/mod/friend"
|
||||||
limitedTimeEvent "server/game/mod/limited_time_event"
|
limitedTimeEvent "server/game/mod/limited_time_event"
|
||||||
"server/game/mod/msg"
|
"server/game/mod/msg"
|
||||||
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
type PlayerSimpleData struct {
|
type PlayerSimpleData struct {
|
||||||
@ -49,6 +50,7 @@ type VarUserData struct {
|
|||||||
Upvote int
|
Upvote int
|
||||||
Chip int
|
Chip int
|
||||||
Kiss int
|
Kiss int
|
||||||
|
mu sync.Mutex
|
||||||
}
|
}
|
||||||
|
|
||||||
type VarExpireData struct {
|
type VarExpireData struct {
|
||||||
|
|||||||
@ -75,6 +75,7 @@ func (m *MessageMgr) MessageMgrInit() {
|
|||||||
m.Use(TimeoutMiddleware(5 * time.Second))
|
m.Use(TimeoutMiddleware(5 * time.Second))
|
||||||
if conf.Server.ServerType == "center" {
|
if conf.Server.ServerType == "center" {
|
||||||
m.RegisterHandler(msg.HANDLE_MOD_PLAYER_LOGIN, MessageHandlerFunc(PlayerLoginHandler))
|
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_PLAYER_MSG, MessageHandlerFunc(CenterPlayerMsgHandler))
|
||||||
m.RegisterHandler(msg.HANDLE_MOD_COMSUME_MSG, MessageHandlerFunc(ComsumerMsgHandler))
|
m.RegisterHandler(msg.HANDLE_MOD_COMSUME_MSG, MessageHandlerFunc(ComsumerMsgHandler))
|
||||||
} else {
|
} else {
|
||||||
@ -102,13 +103,35 @@ func PlayerLoginHandler(data *msg.Msg) (interface{}, error) {
|
|||||||
Messages: []*msg.Msg{},
|
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
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func ComsumerMsgHandler(data *msg.Msg) (interface{}, error) {
|
func ComsumerMsgHandler(data *msg.Msg) (interface{}, error) {
|
||||||
messageMgrData := getData()
|
messageMgrData := getData()
|
||||||
Message, ok := messageMgrData.MessageList[int64(data.From)]
|
Message, ok := messageMgrData.MessageList[int64(data.To)]
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,10 +20,12 @@ var MSG_ZERO_UPDATE = &Msg{Type: SERVER_ZERO_UPDATE}
|
|||||||
var MSG_NOON_UPDATE = &Msg{Type: SERVER_NOON_UPDATE}
|
var MSG_NOON_UPDATE = &Msg{Type: SERVER_NOON_UPDATE}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
HANDLE_MOD_PLAYER_MSG = 20001 // 玩家消息
|
HANDLE_MOD_PLAYER_MSG = 20001 // 玩家消息
|
||||||
HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息
|
HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息
|
||||||
HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息
|
HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息
|
||||||
HANDLE_MOD_COMSUME_MSG = 20004 // 消费消息
|
HANDLE_MOD_COMSUME_MSG = 20004 // 消费消息
|
||||||
|
HANDLE_MOD_CLUSTER_SYNC = 20005 // 集群同步消息
|
||||||
|
HANDLE_MDO_PLAYER_LOGOUT = 20006 // 玩家登出消息
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user