From fb2d1e78b376365ab6a4bde026b2fd087444b89e Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 7 Sep 2023 13:06:29 +0800 Subject: [PATCH] 1 --- server/hallserver/app/app.go | 9 +++++++++ server/hallserver/common/types.go | 4 ++++ server/hallserver/initialize/enter.go | 20 +++++++++++++++++--- server/hallserver/listener/wsplistener.go | 4 ++-- 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/server/hallserver/app/app.go b/server/hallserver/app/app.go index fe657600..5d79a08b 100644 --- a/server/hallserver/app/app.go +++ b/server/hallserver/app/app.go @@ -9,19 +9,28 @@ import ( type app struct { netMsgQueue q5.Queue + initCb func() + unInitCb func() } func (this *app) GetPkgName() string { return "imserver" } +func (this *app) SetCb(initCb func(), unInitCb func()) { + this.initCb = initCb + this.unInitCb = unInitCb +} + func (this *app) Init() { this.netMsgQueue.Init() f5.LoadMetaTable(mt.Table) this.registerDataSources() + this.initCb() } func (this *app) UnInit() { + this.unInitCb() } func (this *app) Update() { diff --git a/server/hallserver/common/types.go b/server/hallserver/common/types.go index b3148ea4..e3bc792c 100644 --- a/server/hallserver/common/types.go +++ b/server/hallserver/common/types.go @@ -30,3 +30,7 @@ type WspListener interface { type HttpListener interface { } + +type App interface { + SetCb(func(), func()) +} diff --git a/server/hallserver/initialize/enter.go b/server/hallserver/initialize/enter.go index 68995a54..7f553b95 100644 --- a/server/hallserver/initialize/enter.go +++ b/server/hallserver/initialize/enter.go @@ -11,11 +11,25 @@ import ( ) func Init() { - app.GetApp().Init() - listener.GetHandlerMgr().Init() + app.GetApp().SetCb(initApp, unInitApp) + f5.Run(app.GetApp()) +} + +func initApp() { global.SetPlayerMgr(player.GetPlayerMgr()) global.SetRoomMgr(room.GetRoomMgr()) global.SetWspListener(listener.GetWspListener()) + + listener.GetHandlerMgr().Init() + player.GetPlayerMgr().Init() + room.GetRoomMgr().Init() + listener.GetWspListener().Init() listener.GetHttpListener().Init() - f5.Run(app.GetApp()) +} + +func unInitApp() { + listener.GetHttpListener().UnInit() + listener.GetWspListener().UnInit() + room.GetRoomMgr().UnInit() + player.GetPlayerMgr().UnInit() } diff --git a/server/hallserver/listener/wsplistener.go b/server/hallserver/listener/wsplistener.go index 9d748f6a..15bf7935 100644 --- a/server/hallserver/listener/wsplistener.go +++ b/server/hallserver/listener/wsplistener.go @@ -21,7 +21,7 @@ type WSPListener struct { msgList q5.ListHead } -func (this *WSPListener) init() { +func (this *WSPListener) Init() { this.ch = make(chan *f5.MsgHdr) listener, err := net.Listen("tcp", "0.0.0.0:"+ q5.ToString(mt.Table.HallCluster.GetListenPort())) @@ -34,7 +34,7 @@ func (this *WSPListener) init() { } } -func (this *WSPListener) unInit() { +func (this *WSPListener) UnInit() { } func (this *WSPListener) SS_ping(hdr *f5.MsgHdr, msg *ss.SS_Ping) {