From c2b32f4d1b61cce1a1c04572ff0e50369a2d29ff Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 7 Sep 2023 15:53:30 +0800 Subject: [PATCH] 1 --- server/hallserver/app/app.go | 2 +- server/hallserver/app/export.go | 11 ++++++-- server/hallserver/common/types.go | 6 +--- server/hallserver/constant/constant.go | 15 ++++++++-- server/hallserver/global/global.go | 21 +++++++------- server/hallserver/initialize/enter.go | 10 +++++-- server/hallserver/listener/export.go | 34 ++++++++--------------- server/hallserver/listener/wsplistener.go | 5 ++-- 8 files changed, 56 insertions(+), 48 deletions(-) diff --git a/server/hallserver/app/app.go b/server/hallserver/app/app.go index 2b7e7936..419766a9 100644 --- a/server/hallserver/app/app.go +++ b/server/hallserver/app/app.go @@ -65,7 +65,7 @@ func (this *app) Update() { } } -func (this *app) addNetMsg(hdr *f5.MsgHdr) { +func (this *app) AddNetMsg(hdr *f5.MsgHdr) { this.netMsgQueue.Push(&hdr.Entry) f5.GetApp().NotifyLoopCond() } diff --git a/server/hallserver/app/export.go b/server/hallserver/app/export.go index 3183d18c..668918d5 100644 --- a/server/hallserver/app/export.go +++ b/server/hallserver/app/export.go @@ -1,5 +1,12 @@ package app -func GetApp() *app { - return nil +import ( + "main/constant" + "main/global" +) + +var _app = new(app) + +func init() { + global.RegModule(constant.APP_MODULE_IDX, _app) } diff --git a/server/hallserver/common/types.go b/server/hallserver/common/types.go index e9de6de6..1d3d09ab 100644 --- a/server/hallserver/common/types.go +++ b/server/hallserver/common/types.go @@ -10,11 +10,6 @@ import ( proto "github.com/golang/protobuf/proto" ) -type Module interface { - Init() - UnInit() -} - type Room interface { } @@ -42,4 +37,5 @@ type HttpListener interface { type App interface { SetCb(func(), func()) + AddNetMsg(*f5.MsgHdr) } diff --git a/server/hallserver/constant/constant.go b/server/hallserver/constant/constant.go index 4824335a..9dfdaea2 100644 --- a/server/hallserver/constant/constant.go +++ b/server/hallserver/constant/constant.go @@ -1,9 +1,9 @@ package constant const ( - PLAYER_MGR_HANDLER_ID = 1 - PLAYER_HANDLER_ID = 2 - WSP_LISTENER_HANDLER_ID = 3 + PLAYER_MGR_HANDLER_ID = iota + PLAYER_HANDLER_ID + WSP_LISTENER_HANDLER_ID ) const ( @@ -14,3 +14,12 @@ const ( GAME_DB = "gamedb" FRIEND_DB = "firenddb" ) + +const ( + ROOMMGR_MODULE_IDX = iota + APP_MODULE_IDX + WSPLISTENER_MODULE_IDX + HANDLER_MGR_MODULE_IDX + HTTP_LISTENER_MODULE_IDX + MAX_MODULE_IDX +) diff --git a/server/hallserver/global/global.go b/server/hallserver/global/global.go index cadc9a47..06e02cfb 100644 --- a/server/hallserver/global/global.go +++ b/server/hallserver/global/global.go @@ -1,9 +1,14 @@ package global import ( + "q5" + "main/constant" "main/common" ) +var modules [constant.MAX_MODULE_IDX]q5.Module + +var app common.App var roomMgr common.RoomMgr var playerMgr common.PlayerMgr var wspListener common.WspListener @@ -12,22 +17,18 @@ func GetRoomMgr() common.RoomMgr { return roomMgr } -func SetRoomMgr(mgr common.RoomMgr) { - roomMgr = mgr -} - func GetPlayerMgr() common.PlayerMgr { return playerMgr } -func SetPlayerMgr(mgr common.PlayerMgr) { - playerMgr = mgr -} - func GetWspListener() common.WspListener { return wspListener } -func SetWspListener(mgr common.WspListener) { - wspListener = mgr +func GetApp() common.App { + return app +} + +func RegModule(idx int32, m q5.Module) { + modules[idx] = m } diff --git a/server/hallserver/initialize/enter.go b/server/hallserver/initialize/enter.go index 7f553b95..3610cb14 100644 --- a/server/hallserver/initialize/enter.go +++ b/server/hallserver/initialize/enter.go @@ -1,5 +1,6 @@ package initialize +/* import ( "f5" @@ -9,13 +10,15 @@ import ( "main/listener" "main/app" ) +*/ func Init() { - app.GetApp().SetCb(initApp, unInitApp) - f5.Run(app.GetApp()) + //app.GetApp().SetCb(initApp, unInitApp) + //f5.Run(app.GetApp()) } func initApp() { + /* global.SetPlayerMgr(player.GetPlayerMgr()) global.SetRoomMgr(room.GetRoomMgr()) global.SetWspListener(listener.GetWspListener()) @@ -25,11 +28,14 @@ func initApp() { room.GetRoomMgr().Init() listener.GetWspListener().Init() listener.GetHttpListener().Init() + */ } func unInitApp() { + /* listener.GetHttpListener().UnInit() listener.GetWspListener().UnInit() room.GetRoomMgr().UnInit() player.GetPlayerMgr().UnInit() + */ } diff --git a/server/hallserver/listener/export.go b/server/hallserver/listener/export.go index dc8b18cb..bcb1bbdb 100644 --- a/server/hallserver/listener/export.go +++ b/server/hallserver/listener/export.go @@ -1,28 +1,16 @@ package listener -var g = struct { - wspListener *WSPListener - handlerMgr *HandlerMgr - httpListener *httpListener -}{} +import ( + "main/constant" + "main/global" +) -func GetWspListener() *WSPListener { - if g.wspListener == nil { - g.wspListener = new(WSPListener) - } - return g.wspListener -} +var _wspListener = new(WSPListener) +var _handlerMgr = new(HandlerMgr) +var _httpListener = new(httpListener) -func GetHandlerMgr() *HandlerMgr { - if g.handlerMgr == nil { - g.handlerMgr = new(HandlerMgr) - } - return g.handlerMgr -} - -func GetHttpListener() *httpListener { - if g.httpListener == nil { - g.httpListener = new(httpListener) - } - return g.httpListener +func init() { + global.RegModule(constant.WSPLISTENER_MODULE_IDX, _wspListener) + global.RegModule(constant.HANDLER_MGR_MODULE_IDX, _handlerMgr) + global.RegModule(constant.HTTP_LISTENER_MODULE_IDX, _httpListener) } diff --git a/server/hallserver/listener/wsplistener.go b/server/hallserver/listener/wsplistener.go index a8c8a4b8..e393f830 100644 --- a/server/hallserver/listener/wsplistener.go +++ b/server/hallserver/listener/wsplistener.go @@ -12,6 +12,7 @@ import ( proto "github.com/golang/protobuf/proto" "main/constant" + . "main/global" ) type WSPListener struct { @@ -139,13 +140,13 @@ func (this *WSPListener) parseNetPkt() { hdr.Msg = ss.ParsePb(hdr.MsgId, hdr.Data) if hdr.Msg != nil { hdr.Entry.Init(hdr) - //app.addNetMsg(hdr) + GetApp().AddNetMsg(hdr) } } else { hdr.Msg = cs.ParsePb(hdr.MsgId, hdr.Data) if hdr.Msg != nil { hdr.Entry.Init(hdr) - //app.addNetMsg(hdr) + GetApp().AddNetMsg(hdr) } } }