1
This commit is contained in:
parent
bc6320d11d
commit
d3fde0949a
@ -74,8 +74,9 @@ func (m *MessageMgr) MessageMgrInit() {
|
||||
m.Use(LoggingMiddleware())
|
||||
m.Use(TimeoutMiddleware(5 * time.Second))
|
||||
if conf.Server.ServerType == "center" {
|
||||
m.RegisterHandler(msg.HANDLE_MOD_PLAYER_LOGIN, MessageHandlerFunc(PlayerLogin))
|
||||
m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(SendToPlayer))
|
||||
m.RegisterHandler(msg.HANDLE_MOD_PLAYER_LOGIN, MessageHandlerFunc(PlayerLoginHandler))
|
||||
m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(CenterPlayerMsgHandler))
|
||||
m.RegisterHandler(msg.HANDLE_MOD_COMSUME_MSG, MessageHandlerFunc(ComsumerMsgHandler))
|
||||
} else {
|
||||
m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(PlayerMsgHandler))
|
||||
}
|
||||
@ -90,7 +91,7 @@ func getData() *MessageData {
|
||||
return G_GameLogicPtr.MessageMgr.data.(*MessageData)
|
||||
}
|
||||
|
||||
func PlayerLogin(data *msg.Msg) (interface{}, error) {
|
||||
func PlayerLoginHandler(data *msg.Msg) (interface{}, error) {
|
||||
// 关闭 Worker Pool
|
||||
messageMgrData := getData()
|
||||
messageMgrData.mu.Lock()
|
||||
@ -105,7 +106,26 @@ func PlayerLogin(data *msg.Msg) (interface{}, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func SendToPlayer(data *msg.Msg) (interface{}, error) {
|
||||
func ComsumerMsgHandler(data *msg.Msg) (interface{}, error) {
|
||||
messageMgrData := getData()
|
||||
Message, ok := messageMgrData.MessageList[int64(data.From)]
|
||||
if !ok {
|
||||
return nil, nil
|
||||
}
|
||||
Message.mu.Lock()
|
||||
defer Message.mu.Unlock()
|
||||
for i, msgItem := range Message.Messages {
|
||||
if msgItem.Id == data.Id {
|
||||
// 删除消息
|
||||
Message.Messages = append(Message.Messages[:i], Message.Messages[i+1:]...)
|
||||
log.Debug("[Middleware] Comsume message success type: %d, player id: %v", msgItem.Type, msgItem.From)
|
||||
break
|
||||
}
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func CenterPlayerMsgHandler(data *msg.Msg) (interface{}, error) {
|
||||
PlayerId := int64(data.To)
|
||||
messageMgrData := getData()
|
||||
// 遍历消息列表,发送消息给在线玩家
|
||||
@ -432,14 +452,12 @@ func SendMsgToNode(m *msg.Msg, node int) error {
|
||||
|
||||
func SendPlayerMsg(m *msg.Msg) error {
|
||||
clone := m.Clone()
|
||||
clone.UniKey = GoUtil.UniKey(fmt.Sprintf("%v,Player Msg", m))
|
||||
clone.HandleType = msg.HANDLE_MOD_PLAYER_MSG
|
||||
return mergeCluster.SendServerMsg(m, conf.Server.CenterNode)
|
||||
}
|
||||
|
||||
func CallPlayerMsg(m *msg.Msg) (interface{}, error) {
|
||||
clone := m.Clone()
|
||||
clone.UniKey = GoUtil.UniKey(fmt.Sprintf("%v,Player Msg", m))
|
||||
clone.HandleType = msg.HANDLE_MOD_PLAYER_MSG
|
||||
return mergeCluster.CallServerMsg(m, conf.Server.CenterNode)
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user