連接 指針 架設 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熟人棋牌系統架設平臺服務器架構設計分析