h5熟人棋牌系統架設平臺服務器架構設計分析
阿新 • • 發佈:2018-02-01
連接 指針 架設 mage jpg nes order play 核心
h5熟人棋牌系統架設(aqiulian.com/h5),QQ咨詢212303635模仿COM組件接口模式,利用面向對象思想多態性polymorphism,調用方保存著被調用方的基礎接口指針(interface or sink鉤子)(Pure Virtual Function),調用方直接調用接口指針內聲明的純虛方法,而此純虛函數的具體邏輯由該接口的派生類實現。
示意圖:
基於事件驅動的數據處理模型
在系統功能設計中,針對網絡事件SocketEvent、數據庫事件DatabaseEvent、定時器事件TimerEvent……的數據處理,建立數據隊列服務QueueService,為每一隊列建立多個子線程QueueServiceThread處理。數據隊列服務提供添加事件數據的方法AddToQueue,設置數據隊列服務鉤子SetQueueServiceSink,由數據隊列服務鉤子QueueServiceSink執行具體邏輯事件的數據處理。
示意圖:
再者,根據網絡、數據庫等特定功能,構建網絡、數據庫等管理服務,實現數據隊列服務鉤子QueueServiceSink方法,調度事件數據執行外部處理接口,外部處理接口具體由二次開發用戶實現。
示意圖:
事件數據設計
軟件體系結構(架構 Architecture)設計
功能模塊劃分
數據隊列服務QueueService模塊設計
基本設計概念
建立一個內存鏈表,保存事件數據,對外部提供方法(向鏈表添加事件數據並通知線程,同時啟動多個處理線程,從數據鏈表裏獲取事件數據,執行外部鉤子方法進行處理。線程事件通知采用完成端口技術。
類與接口設計
內部類:
中心服務器 | 名字 | 類名 | 繼承 | 類型 |
調度引擎鉤子 | CAttemperEngineSink | : public IAttemperEngineSink | 接口實現 | |
數據庫引擎鉤子 | CDataBaseSink | : public IDataBaseSink | 接口實現 | |
中心服務類 | CCenterService | 核心類 | ||
配置參數 | CInitParamter | 核心類 | ||
連接信息結構 | CConnectItem | 數據管理 | ||
連接信息管理 | CConnectInfoManager | 數據管理 | ||
房間連接信息 | CConnectItem_GameServer | : public CConnectItem | 數據管理 | |
廣場連接信息 | CConnectItem_Plaza | : public CConnectItem | 數據管理 | |
應用程序對象 | CCenterServerApp | : public CWinApp | MFC | |
主對話框 | CCenterServerDlg | : public CDialog | MFC | |
配置對話框 | CSystemOptionDlg | : public CDialog | MFC | |
登陸、大廳 | 名字 | 類名 | 繼承 | 類型 |
調度引擎鉤子 | CAttemperEngineSink | : public IAttemperEngineSink | 接口實現 | |
數據庫引擎鉤子 | CDataBaseSink | : public IDataBaseSink | 接口實現 | |
中心連接類 | CCenterSocket | : public IAsynchronismEngineSink, public IClientSocketSink |
接口實現 | |
登錄服務類 | CLogonService | 核心類 | ||
配置參數 | CInitParamter | 核心類 | ||
列表管理 | CServerList | 數據管理 | ||
列表信息 | CServerListInfo | 數據管理 | ||
應用程序對象 | CLogonServerApp | : public CWinApp | MFC | |
主對話框 | CLogonServerDlg | : public CDialog | MFC | |
配置對話框 | CSystemOptionDlg | : public CDialog | MFC | |
遊戲裝載器 | 名字 | 類名 | 繼承 | 類型 |
服務參數類 | CServiceParameter | : public CDialog | MFC/核心類 | |
配置參數 | CInitParamter | 核心類 | ||
應用程序對象 | CServiceLoaderApp | : public CWinApp | MFC | |
主對話框 | CServiceLoaderDlg | : public CDialog | MFC | |
配置對話框 | CSystemOptionDlg | : public CDialog | MFC | |
遊戲服務框架 | 名字 | 類名 | 繼承 | 類型 |
調度引擎鉤子 | CAttemperEngineSink | : public IAttemperEngineSink, public IGameServiceFrame |
接口實現 | |
數據庫引擎鉤子 | CDataBaseSink | : public IDataBaseSink | 接口實現 | |
中心連接類 | CCenterSocket | : public IAsynchronismEngineSink, public IClientSocketSink |
接口實現 |
h5熟人棋牌系統架設平臺服務器架構設計分析