| 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 (
- actorGame struct {
- RoomTypeList
- }
- )
- func NewActorGame() *actorGame {
- return &actorGame{
- RoomTypeList: newRoomTypeList(enum.ChatType_Game),
- }
- }
- func (p *actorGame) 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 *actorGame) AliasID() string {
- return nameActor.Chat_Game
- }
- func (p *actorGame) send(req *pb.ChatMsgList) {
- p.AddChatMsg(req)
- //路由到sendPlayer对应的gameNodeID push新消息
- p.pushSend(req)
- }
- func (p *actorGame) pushSend(req *pb.ChatMsgList) {
- gameNodeID := req.List[0].Sender.GameNodeID
- sessions.PushGame(gameNodeID, nameRoute.PushChat_MsgList, req)
- }
- func (p *actorGame) 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.PushGame(msg.Sender.GameNodeID, nameRoute.PushChat_Delete, req)
- }
|