This commit is contained in:
aozhiwei 2023-09-09 18:12:51 +08:00
parent 1a6699c6f8
commit f948ec0697
7 changed files with 50 additions and 18 deletions

View File

@ -62,6 +62,9 @@ func (this *app) Update() {
case constant.PLAYER_MGR_HANDLER_ID: case constant.PLAYER_MGR_HANDLER_ID:
case constant.PLAYER_HANDLER_ID: case constant.PLAYER_HANDLER_ID:
GetPlayerMgr().ProcessCMMsg(handler, hdr) GetPlayerMgr().ProcessCMMsg(handler, hdr)
case constant.ROOM_HANDLER_ID:
case constant.ROOM_MGR_HANDLER_ID:
GetRoomMgr().ProcessCMMsg(handler, hdr)
} }
} }
} }

View File

@ -15,7 +15,7 @@ type Room interface {
} }
type RoomMgr interface { type RoomMgr interface {
ProcessCMMsg(*cs.CsNetMsgHandler, *f5.MsgHdr)
} }
type Player interface { type Player interface {
@ -23,6 +23,8 @@ type Player interface {
type PlayerMgr interface { type PlayerMgr interface {
ProcessCMMsg(*cs.CsNetMsgHandler, *f5.MsgHdr) ProcessCMMsg(*cs.CsNetMsgHandler, *f5.MsgHdr)
GetPlayerBySocket(f5.WspCliConn) Player
GetPlayerByAccountId(string) Player
} }
type WspListener interface { type WspListener interface {

View File

@ -3,6 +3,8 @@ package constant
const ( const (
PLAYER_MGR_HANDLER_ID = iota PLAYER_MGR_HANDLER_ID = iota
PLAYER_HANDLER_ID PLAYER_HANDLER_ID
ROOM_HANDLER_ID
ROOM_MGR_HANDLER_ID
WSP_LISTENER_HANDLER_ID WSP_LISTENER_HANDLER_ID
) )

View File

@ -18,15 +18,16 @@ func (this *HandlerMgr) Init() {
cs.RegHandlerId(int(cs.CMMessageIdE__CMLogin), constant.PLAYER_MGR_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMLogin), constant.PLAYER_MGR_HANDLER_ID)
cs.RegHandlerId(int(cs.CMMessageIdE__CMReconnect), constant.PLAYER_MGR_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMReconnect), constant.PLAYER_MGR_HANDLER_ID)
cs.RegHandlerId(int(cs.CMMessageIdE__CMCreateRoom), constant.PLAYER_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMCreateRoom), constant.ROOM_MGR_HANDLER_ID)
cs.RegHandlerId(int(cs.CMMessageIdE__CMRoomList), constant.PLAYER_HANDLER_ID)
cs.RegHandlerId(int(cs.CMMessageIdE__CMJoinRoom), constant.PLAYER_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMRoomList), constant.ROOM_HANDLER_ID)
cs.RegHandlerId(int(cs.CMMessageIdE__CMDisbandRoom), constant.PLAYER_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMJoinRoom), constant.ROOM_HANDLER_ID)
cs.RegHandlerId(int(cs.CMMessageIdE__CMLeaveRoom), constant.PLAYER_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMDisbandRoom), constant.ROOM_HANDLER_ID)
cs.RegHandlerId(int(cs.CMMessageIdE__CMModifyRoom), constant.PLAYER_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMLeaveRoom), constant.ROOM_HANDLER_ID)
cs.RegHandlerId(int(cs.CMMessageIdE__CMStartGame), constant.PLAYER_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMModifyRoom), constant.ROOM_HANDLER_ID)
cs.RegHandlerId(int(cs.CMMessageIdE__CMSetPrepare), constant.PLAYER_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMStartGame), constant.ROOM_HANDLER_ID)
cs.RegHandlerId(int(cs.CMMessageIdE__CMKickout), constant.PLAYER_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMSetPrepare), constant.ROOM_HANDLER_ID)
cs.RegHandlerId(int(cs.CMMessageIdE__CMKickout), constant.ROOM_HANDLER_ID)
} }
func (this *HandlerMgr) UnInit() { func (this *HandlerMgr) UnInit() {

View File

@ -9,6 +9,7 @@ import (
"mt" "mt"
"q5" "q5"
"main/constant" "main/constant"
"main/common"
"github.com/golang/protobuf/proto" "github.com/golang/protobuf/proto"
. "main/global" . "main/global"
) )
@ -51,7 +52,7 @@ func (this *playerMgr) UnInit() {
func (this *playerMgr) CMLogin(hdr *f5.MsgHdr, msg *cs.CMLogin) { func (this *playerMgr) CMLogin(hdr *f5.MsgHdr, msg *cs.CMLogin) {
{ {
oldplayer := this.getPlayerBySocket(hdr.GetSocket()) oldplayer := this.internalGetPlayerBySocket(hdr.GetSocket())
if oldplayer != nil { if oldplayer != nil {
rspMsg := cs.SMLogin{} rspMsg := cs.SMLogin{}
rspMsg.Errcode = proto.Int32(0) rspMsg.Errcode = proto.Int32(0)
@ -61,7 +62,7 @@ func (this *playerMgr) CMLogin(hdr *f5.MsgHdr, msg *cs.CMLogin) {
} }
} }
{ {
oldplayer := this.getPlayerByAccountId(msg.GetAccountId()) oldplayer := this.internalGetPlayerByAccountId(msg.GetAccountId())
if oldplayer != nil { if oldplayer != nil {
rspMsg := cs.SMLogin{} rspMsg := cs.SMLogin{}
rspMsg.Errcode = proto.Int32(0) rspMsg.Errcode = proto.Int32(0)
@ -179,7 +180,11 @@ func (this *playerMgr) reportServerState(masterIp string, masterPort int32) {
}) })
} }
func (this *playerMgr) getPlayerByAccountId(accountId string) *player { func (this *playerMgr) GetPlayerByAccountId(accountId string) common.Player {
return this.internalGetPlayerByAccountId(accountId)
}
func (this *playerMgr) internalGetPlayerByAccountId(accountId string) *player {
player, ok := this.accountIdHash[accountId] player, ok := this.accountIdHash[accountId]
if ok { if ok {
return player return player
@ -187,7 +192,11 @@ func (this *playerMgr) getPlayerByAccountId(accountId string) *player {
return nil return nil
} }
func (this *playerMgr) getPlayerBySocket(socket f5.WspCliConn) *player { func (this *playerMgr) GetPlayerBySocket(socket f5.WspCliConn) common.Player {
return this.internalGetPlayerBySocket(socket)
}
func (this *playerMgr) internalGetPlayerBySocket(socket f5.WspCliConn) *player {
player, ok := this.socketHash[socket] player, ok := this.socketHash[socket]
if ok { if ok {
return player return player
@ -200,7 +209,7 @@ func (this* playerMgr) ProcessCMMsg(handler *cs.CsNetMsgHandler, hdr *f5.MsgHdr)
case constant.PLAYER_MGR_HANDLER_ID: case constant.PLAYER_MGR_HANDLER_ID:
cs.DispatchMsg(handler, hdr, this) cs.DispatchMsg(handler, hdr, this)
case constant.PLAYER_HANDLER_ID: case constant.PLAYER_HANDLER_ID:
player := this.getPlayerBySocket(hdr.GetSocket()) player := this.internalGetPlayerBySocket(hdr.GetSocket())
if player != nil { if player != nil {
cs.DispatchMsg(handler, hdr, player) cs.DispatchMsg(handler, hdr, player)
} }
@ -222,7 +231,7 @@ func (this *playerMgr) genSeqId() *int64 {
} }
func (this *playerMgr) SS_WSP_SocketDisconnect(hdr *f5.MsgHdr, msg *ss.SS_WSP_SocketDisconnect) { func (this *playerMgr) SS_WSP_SocketDisconnect(hdr *f5.MsgHdr, msg *ss.SS_WSP_SocketDisconnect) {
hum := this.getPlayerBySocket(hdr.GetSocket()) hum := this.internalGetPlayerBySocket(hdr.GetSocket())
if hum == nil { if hum == nil {
return return
} }

View File

@ -193,13 +193,14 @@ message SMCreateRoom
// //
message CMRoomList message CMRoomList
{ {
optional int32 page = 1; // optional int32 page = 1; //
optional int32 room_id = 2; //id
} }
message SMRoomList message SMRoomList
{ {
optional MFPagination Pagination = 1; // optional MFPagination Pagination = 1; //
repeated MFRoom rows = 2; // repeated MFRoom rows = 2; //
} }
// //

View File

@ -2,6 +2,9 @@ package room
import ( import (
"cs" "cs"
"f5"
"main/constant"
. "main/global"
) )
type roomMgr struct { type roomMgr struct {
@ -17,3 +20,14 @@ func (this *roomMgr) Init() {
func (this *roomMgr) UnInit() { func (this *roomMgr) UnInit() {
} }
func (this *roomMgr) ProcessCMMsg(handler *cs.CsNetMsgHandler, hdr *f5.MsgHdr) {
switch handler.HandlerId {
case constant.PLAYER_MGR_HANDLER_ID:
cs.DispatchMsg(handler, hdr, this)
case constant.PLAYER_HANDLER_ID:
player := GetPlayerMgr().GetPlayerBySocket(hdr.GetSocket())
if player != nil {
}
}
}