一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

源碼之家,精品網站源碼、商業源碼、免費源碼、網站源代碼下載網站
分類導航

源碼動態|PHP源碼|ASP源碼|.NET源碼|HTML源碼|商業源碼|游戲源碼|

服務器之家 - 源碼之家 - 源碼動態 - 網狐棋牌游戲平臺服務器架構設計分析

網狐棋牌游戲平臺服務器架構設計分析

2020-10-13 10:22mergerly 源碼動態

本文主要為大家介紹網狐棋牌游戲平臺服務器架構設計分析,有需要的朋友可以參考下

基本設計概念和處理流程

調用模型

模仿COM組件接口模式,利用面向對象思想多態性polymorphism,調用方保存著被調用方的基礎接口指針(interface or sink鉤子)(Pure Virtual Function),調用方直接調用接口指針內聲明的純虛方法,而此純虛函數的具體邏輯由該接口的派生類實現。

示意圖:

網狐棋牌游戲平臺服務器架構設計分析

基于事件驅動的數據處理模型

在系統功能設計中,針對網絡事件SocketEvent、數據庫事件DatabaseEvent、定時器事件TimerEvent……的數據處理,建立數據隊列服務QueueService,為每一隊列建立多個子線程QueueServiceThread處理。數據隊列服務提供添加事件數據的方法AddToQueue,設置數據隊列服務鉤子SetQueueServiceSink,由數據隊列服務鉤子QueueServiceSink執行具體邏輯事件的數據處理。
示意圖:

網狐棋牌游戲平臺服務器架構設計分析
再者,根據網絡、數據庫等特定功能,構建網絡、數據庫等管理服務,實現數據隊列服務鉤子QueueServiceSink方法,調度事件數據執行外部處理接口,外部處理接口具體由二次開發用戶實現。

示意圖:

網狐棋牌游戲平臺服務器架構設計分析

 

事件數據設計

網狐棋牌游戲平臺服務器架構設計分析

 

軟件體系結構(架構 Architecture)設計

網狐棋牌游戲平臺服務器架構設計分析

 

功能模塊劃分

網狐棋牌游戲平臺服務器架構設計分析

 

數據隊列服務QueueService模塊設計

    基本設計概念

    建立一個內存鏈表,保存事件數據,對外部提供方法(向鏈表添加事件數據并通知線程,同時啟動多個處理線程,從數據鏈表里獲取事件數據,執行外部鉤子方法進行處理。線程事件通知采用完成端口技術。

    類與接口設計

網狐棋牌游戲平臺服務器架構設計分析

 

COM接口 接口名 接口基類 接口實現類
A 隊列引擎 IQueueServiceEngine CQueueServiceHelper
B 事件服務 IEventService CEventServiceHelper
C 網絡引擎 ITCPSocketEngine CTCPSocketEngineHelper
D 定時器引擎 ITimerEngine CTimerEngineHelper
E 數據庫操作 IDataBase CDataBaseHelper
F 數據庫引擎 IDataBaseEngine CDataBaseEngineHelper
I 調度引擎 IAttemperEngine CAttemperEngineHelper
G 服務引擎 IServiceEngine CServiceEngineHelper
K 異步引擎 IAsynchronismEngine CAsynchronismEngineHelper
  自動清理參數輔助類   CAutoCleanParameters
  自動關閉記錄集輔助類   CAutoCloseRecord
  斷開數據庫連接輔助類   CAutoCloseDataBase
       

 

內部接口 類別 接口 功能 繼承 實現類
  數據隊列事件
(非組件實現)
CQueueServiceEvent
(IQueueService、CThreadLock)
設置接口、發送通知事件    
           
  數據庫錯誤接口 IADOError 錯誤類型與描述 : public IUnknownEx CADOError
E 數據庫連接接口 IDataBase 數據庫操作類 : public IUnknownEx CDataBase
  數據庫鉤子接口 IDataBaseSink 啟動關閉數據庫模塊、數據操作處理 : public IUnknownEx  
F 數據庫引擎接口 IDataBaseEngine 啟動停止服務、注冊鉤子、獲取接口 : public IUnknownEx CDataBaseEngine
           
A 數據隊列接口 IQueueService 加入數據 : public IUnknownEx CQueueService
  數據隊列類鉤子接口 IQueueServiceSink 通知回調函數 : public IUnknownEx CTCPSocketEngine
CDataBaseEngine
CAttemperEngine
A 隊列類引擎接口 IQueueServiceEngine 開始服務、停止服務、設置接口、負荷信息 : public IUnknownEx CQueueService
           
B 事件服務引擎接口 IEventService 設置句柄、設置級別、事件通知 : public IUnknownEx CEventService
G 服務引擎接口 IServiceEngine 服務接口、配置接口、服務查詢、功能接口 : public IUnknownEx CServiceEngine
           
D 定時器引擎接口 ITimerEngine 設置定時器、刪除定時器 : public IUnknownEx CTimerEngine
D 定時器引擎接口 ITimerEngineManager 開始服務、停止服務、設置接口 : public IUnknownEx CTimerEngine
           
C TCP SOCKET 引擎接口 ITCPSocketEngine 發送、批量發送、關閉連接、允許群發 : public IUnknownEx CTCPSocketEngine
C TCP SOCKET 引擎管理接口 ITCPSocketEngineManager 設置接口、端口、數目、啟動服務、停止服務 : public IUnknownEx CTCPSocketEngine
C 連接對象回調接口 IServerSocketItemSink 應答消息、讀取消息、關閉消息   CTCPSocketEngine
           
  調度模塊鉤子接口 IAttemperEngineSink 管理接口、事件接口(定時器、數據庫、網絡應答讀取關閉) : public IUnknownEx  
I 調度引擎接口 IAttemperEngine 服務管理、設置鉤子、設置網絡、獲取接口 : public IUnknownEx CAttemperEngine
           
K 異步引擎接口 IAsynchronismEngine 管理接口(啟動停止服務、插入請求)、功能接口(注冊鉤子、取消注冊) : public IUnknownEx CAsynchronismEngine
  異步引擎鉤子接口 IAsynchronismEngineSink 啟動事件、停止事件、異步請求 : public IUnknownEx  
           

 

接口實現 類別 引用
  網絡管理類 CTCPSocketEngine CQueueService//隊列對象
CServerSocketItemPtrArray
CQueueServiceEvent//通知組件
  調度管理類 CAttemperEngine ITCPSocketEngine//網絡引擎
IAttemperEngineSink//掛接接口CQueueService//隊列對象
  數據庫對象 CDataBase _CommandPtr//命令對象
_RecordsetPtr//記錄集對象
_ConnectionPtr//數據庫對象
  數據庫管理類 CDataBaseEngine CQueueService//隊列對象
IDataBaseSink//通知鉤子
  事件服務類 CEventService 設置句柄-bool SetRichEditHwnd(HWND);
設置級別-void ConfigEventService(...);
事件通知-void ShowEventNotify(...);
  定時器引擎 CTimerEngine CTimerThread->(公共服務)
  異步引擎接口 CAsynchronismEngine friend class CControlWnd;
friend class CMessageThread;
CControlWnd//控制窗口
CThreadLock//線程同步
CDataStorage//數據存儲
CMessageThread//線程組件
  服務引擎 CServiceEngine CTimerEngine定時器引擎
CDataBaseEngine數據庫引擎
CAttemperEngine調度引擎
CTCPSocketEngine  網絡引擎
CAsynchronismEngine 異步引擎
  數據隊列類 CQueueService CQueueServiceThread->(公共服務)
  ADO 錯誤類 CADOError : public IADOError
       

 

內部類:

意義 功能 繼承 引用
TCP SOCKET 類 CServerSocketItem SOCK對象和操作、完成端口、加密解密等    
數據隊列事件 CQueueServiceEvent 事件通知,接口設置管理   代碼級引用
窗口控制類 CControlWnd //消息映射
OnAsynRequest//請求消息
: public CWnd  
應答線程對象 CSocketAcceptThread 運行函數(WSAAccept) : public CServiceThread  
讀寫線程類 CServerSocketRSThread 運行函數(GetQueuedCompletionStatus)
參數CServerSocketItem *
: public CServiceThread  
檢測線程類 CSocketDetectThread 運行函數(非阻塞)、檢測m_dwTickCount : public CServiceThread CTCPSocketEngine*//管理指針
隊列線程類 CQueueServiceThread 運行函數(GetQueuedCompletionStatus)
參數CQueueService *
: public CServiceThread  
消息線程 CMessageThread 運行函數(for CAsynchronismEngineSinkArray*) : public CServiceThread CAsynchronismEngine*//異步引擎
定時器線程 CTimerThread 運行函數(for CTimerItemPtr->GetCount();) : public CServiceThread CTimerEngine*//定時器引擎
         
數據存儲類 CDataStorage 內存的管理   公共服務( dllimport class )
線程對象類 CServiceThread 線程操作管理 IServiceThread 公共服務( dllimport class )
事件輸出類 CEventTrace 事件管理、通知、級別(靜態類)   靜態全局 IEventService 以及其他處理函數
         
類別 類(非組件實現) 接口(組件接口)    
數據庫引擎鉤子 CDataBaseSink IDataBaseSink    
調度引擎鉤子 CAttemperEngineSink IAttemperEngineSink    
客戶端網絡引擎+鉤子 客戶端SOCKET+=IClientSocketSink IAsynchronismEngineSink    

 

中心服務器 名字 類名 繼承 類型
  調度引擎鉤子 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
接口實現

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女张开腿黄网站免费精品动漫 | 黄瓜视频黄版 | 成人永久免费视频 | 调教催眠| 天天av天天翘天天综合网 | 国语自产拍在线播放不卡 | 日本精品vide·ssex日本 | 亚洲同性男男gay1069 | 青青青久热国产精品视频 | 亚洲精品成人在线 | 2015台湾永久免费平台 | caoporen在线视频入口 | 97精品国产高清在线看入口 | 香蕉久草| 免费高清在线视频色yeye | 国产91素人搭讪系列天堂 | 国产精品免费观在线 | 亚洲精品中文 | 99热视| 亚洲麻豆精品 | 国产精品nv在线观看 | fc2免费人成为视频 eeuss18影院www国产 | 传说之下羊妈挤羊奶网站 | 色综合久久最新中文字幕 | 北条麻妃黑人正在播放 | 欧美一级片免费 | 风间由美在线 | 亚洲四虎 | 成人综合婷婷国产精品久久免费 | 亚洲国产欧美在线人成aaa | 国产福利免费看 | 亚洲精品福利在线 | 男女全黄h全肉细节文 | 日韩国产欧美成人一区二区影院 | 男人免费视频 | 青青草原国产一区二区 | 91麻豆精品国产91久久久 | 午夜办公室在线观看高清电影 | 国产在视频线精品视频 | 99成人免费视频 | 极品美女a∨片在线看 |