| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package chat
- import (
- "f1-game/internal/component/redis"
- "f1-game/internal/enum"
- nameActor "f1-game/internal/name/actor"
- nameRemote "f1-game/internal/name/remote"
- nameRoute "f1-game/internal/name/route"
- "f1-game/internal/pb"
- "f1-game/internal/sessions"
- )
- type (
- actorMap struct {
- RoomTypeList
- }
- )
- func NewActorMap() *actorMap {
- return &actorMap{
- RoomTypeList: newRoomTypeList(enum.ChatType_Map),
- }
- }
- func (p *actorMap) OnInit() {
- p.Remote().Register(nameRemote.Chat_Send, p.send)
- p.Remote().Register(nameRemote.Chat_Push, p.Push)
- p.Remote().Register(nameRemote.Chat_Destory, p.Destory)
- p.Remote().Register(nameRemote.Chat_DelMsg, p.delMsg)
- }
- func (p *actorMap) AliasID() string {
- return nameActor.Chat_Map
- }
- func (p *actorMap) send(req *pb.ChatMsgList) {
- p.AddChatMsg(req)
- //路由到sendPlayer对应的mapNodeID push新消息
- p.pushSend(req)
- }
- func (p *actorMap) pushSend(req *pb.ChatMsgList) {
- mapNodeID := req.List[0].Sender.MapNodeID
- sessions.PushMap(mapNodeID, nameRoute.PushChat_MsgList, req)
- }
- func (p *actorMap) delMsg(req *pb.I64I64) {
- var (
- chatID = req.Key
- msgID = req.Value
- )
- msg := redis.Chat.GetChatMsg(p.chatType, chatID, msgID)
- if msg == nil {
- return
- }
- redis.Chat.DelMsgByMsgID(p.chatType, chatID, msgID)
- sessions.PushMap(msg.Sender.MapNodeID, nameRoute.PushChat_Delete, req)
- }
|