Merge branch 'master' into develop

This commit is contained in:
殷勇 2023-09-08 15:55:40 +08:00
commit b796fb4244
5 changed files with 24 additions and 13 deletions

View File

@ -11,7 +11,7 @@ import (
)
type Room interface {
OnPlayerOffline(Player)
}
type RoomMgr interface {

View File

@ -12,8 +12,8 @@ type HandlerMgr struct {
func (this *HandlerMgr) Init() {
ss.RegHandlerId(int(ss.SSMessageIdE__SS_Ping), constant.WSP_LISTENER_HANDLER_ID)
ss.RegHandlerId(int(ss.SSMessageIdE__SS_WSP_SocketDisconnect), constant.WSP_LISTENER_HANDLER_ID)
ss.RegHandlerId(int(ss.SSMessageIdE__SS_WSP_SocketDisconnect), constant.PLAYER_MGR_HANDLER_ID)
cs.RegHandlerId(int(cs.CMMessageIdE__CMPing), 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)

View File

@ -27,7 +27,7 @@ func (this *WSPListener) Init() {
listener, err := net.Listen("tcp", "0.0.0.0:"+
q5.ToString(mt.Table.HallCluster.GetListenPort()))
if err != nil {
panic(err)
} else {
this.listener = listener
go this.parseNetPkt()
@ -39,9 +39,8 @@ func (this *WSPListener) UnInit() {
}
func (this *WSPListener) SS_ping(hdr *f5.MsgHdr, msg *ss.SS_Ping) {
}
func (this *WSPListener) SS_WSP_SocketDisconnect(hdr *f5.MsgHdr, msg *ss.SS_WSP_SocketDisconnect) {
rspMsg := ss.SS_Pong{}
this.SendProxyMsg(hdr.Conn, 0, &rspMsg)
}
func (this *WSPListener) accept() {

View File

@ -13,7 +13,7 @@ type player struct {
socket f5.WspCliConn
accountId string
sessionId string
room *common.Room
room common.Room
}
func (this *player) GetAccountId() string {
@ -24,17 +24,23 @@ func (this *player) SendMsg(rspMsg proto.Message) {
GetWspListener().SendProxyMsg(this.socket.Conn, this.socket.SocketHandle, rspMsg)
}
func (this *player) GetRoom() *common.Room {
func (this *player) GetRoom() common.Room {
return this.room
}
func (this *player) init(req *pendingLoginRequest){
this.socket = req.hdr.GetSocket()
this.accountId = req.msg.GetAccountId()
this.sessionId = req.msg.GetSessionId()
}
func (this *player) onOffline(){
this.socket.Reset()
if this.room != nil {
this.room.OnPlayerOffline(this)
}
}
func (this *player) CMCreateRoom(hdr *f5.MsgHdr, msg *cs.CMCreateRoom) {
}

View File

@ -2,6 +2,7 @@ package player
import (
"cs"
"ss"
"encoding/json"
"f5"
"fmt"
@ -178,10 +179,6 @@ func (this *playerMgr) reportServerState(masterIp string, masterPort int32) {
})
}
func (this *playerMgr) GetPlayers() map[string]*player {
return this.accountIdHash
}
func (this *playerMgr) getPlayerByAccountId(accountId string) *player {
player, ok := this.accountIdHash[accountId]
if ok {
@ -223,3 +220,12 @@ func (this *playerMgr) genSeqId() *int64 {
reqId := this.currReqId
return &reqId
}
func (this *playerMgr) SS_WSP_SocketDisconnect(hdr *f5.MsgHdr, msg *ss.SS_WSP_SocketDisconnect) {
hum := this.getPlayerBySocket(hdr.GetSocket())
if hum == nil {
return
}
delete(this.socketHash, hdr.GetSocket())
hum.onOffline()
}