From 1dcd9afe59664f8f3af3c21f8bc7e0f756d663cc Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 8 Sep 2023 14:27:29 +0800 Subject: [PATCH 1/3] 1 --- server/hallserver/listener/handlermgr.go | 2 +- server/hallserver/listener/wsplistener.go | 7 +++---- server/hallserver/player/player.go | 1 - server/hallserver/player/playermgr.go | 4 ++++ 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/server/hallserver/listener/handlermgr.go b/server/hallserver/listener/handlermgr.go index 9d493151..d7de2c51 100644 --- a/server/hallserver/listener/handlermgr.go +++ b/server/hallserver/listener/handlermgr.go @@ -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) diff --git a/server/hallserver/listener/wsplistener.go b/server/hallserver/listener/wsplistener.go index e393f830..a9bc0c2c 100644 --- a/server/hallserver/listener/wsplistener.go +++ b/server/hallserver/listener/wsplistener.go @@ -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() { diff --git a/server/hallserver/player/player.go b/server/hallserver/player/player.go index 9f7bdbb4..f34d31a3 100644 --- a/server/hallserver/player/player.go +++ b/server/hallserver/player/player.go @@ -28,7 +28,6 @@ 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() diff --git a/server/hallserver/player/playermgr.go b/server/hallserver/player/playermgr.go index f0fc7cf4..5e27cf94 100644 --- a/server/hallserver/player/playermgr.go +++ b/server/hallserver/player/playermgr.go @@ -2,6 +2,7 @@ package player import ( "cs" + "ss" "encoding/json" "f5" "fmt" @@ -223,3 +224,6 @@ func (this *playerMgr) genSeqId() *int64 { reqId := this.currReqId return &reqId } + +func (this *playerMgr) SS_WSP_SocketDisconnect(hdr *f5.MsgHdr, msg *ss.SS_WSP_SocketDisconnect) { +} From 74466e42d85dd9986536098953b735b5ad7aaaa1 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 8 Sep 2023 14:43:47 +0800 Subject: [PATCH 2/3] 1 --- server/hallserver/common/types.go | 2 +- server/hallserver/player/player.go | 4 ++-- server/hallserver/player/playermgr.go | 13 +++++++++---- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/server/hallserver/common/types.go b/server/hallserver/common/types.go index 7e26456c..b4df104f 100644 --- a/server/hallserver/common/types.go +++ b/server/hallserver/common/types.go @@ -11,7 +11,7 @@ import ( ) type Room interface { - + OnPlayerOffline(Player) } type RoomMgr interface { diff --git a/server/hallserver/player/player.go b/server/hallserver/player/player.go index f34d31a3..ae6ff110 100644 --- a/server/hallserver/player/player.go +++ b/server/hallserver/player/player.go @@ -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,7 +24,7 @@ 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 } diff --git a/server/hallserver/player/playermgr.go b/server/hallserver/player/playermgr.go index 5e27cf94..cce14fe9 100644 --- a/server/hallserver/player/playermgr.go +++ b/server/hallserver/player/playermgr.go @@ -179,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 { @@ -226,4 +222,13 @@ func (this *playerMgr) genSeqId() *int64 { } 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.socket.Reset() + if hum.room != nil { + hum.room.OnPlayerOffline(hum) + } } From 02086f846793b9c88a2181ac1495bb79f1097c3e Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 8 Sep 2023 15:11:36 +0800 Subject: [PATCH 3/3] 1 --- server/hallserver/player/player.go | 7 +++++++ server/hallserver/player/playermgr.go | 5 +---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/server/hallserver/player/player.go b/server/hallserver/player/player.go index ae6ff110..8bccd380 100644 --- a/server/hallserver/player/player.go +++ b/server/hallserver/player/player.go @@ -34,6 +34,13 @@ func (this *player) init(req *pendingLoginRequest){ 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) { } diff --git a/server/hallserver/player/playermgr.go b/server/hallserver/player/playermgr.go index cce14fe9..72f1731c 100644 --- a/server/hallserver/player/playermgr.go +++ b/server/hallserver/player/playermgr.go @@ -227,8 +227,5 @@ func (this *playerMgr) SS_WSP_SocketDisconnect(hdr *f5.MsgHdr, msg *ss.SS_WSP_So return } delete(this.socketHash, hdr.GetSocket()) - hum.socket.Reset() - if hum.room != nil { - hum.room.OnPlayerOffline(hum) - } + hum.onOffline() }