激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

源碼之家,精品網(wǎng)站源碼、商業(yè)源碼、免費源碼、網(wǎng)站源代碼下載網(wǎng)站
分類導(dǎo)航

源碼動態(tài)|PHP源碼|ASP源碼|.NET源碼|HTML源碼|商業(yè)源碼|游戲源碼|

服務(wù)器之家 - 源碼之家 - 源碼動態(tài) - 網(wǎng)狐棋牌游戲平臺服務(wù)器架構(gòu)設(shè)計分析

網(wǎng)狐棋牌游戲平臺服務(wù)器架構(gòu)設(shè)計分析

2020-10-13 10:22mergerly 源碼動態(tài)

本文主要為大家介紹網(wǎng)狐棋牌游戲平臺服務(wù)器架構(gòu)設(shè)計分析,有需要的朋友可以參考下

基本設(shè)計概念和處理流程

調(diào)用模型

模仿COM組件接口模式,利用面向?qū)ο笏枷攵鄳B(tài)性polymorphism,調(diào)用方保存著被調(diào)用方的基礎(chǔ)接口指針(interface or sink鉤子)(Pure Virtual Function),調(diào)用方直接調(diào)用接口指針內(nèi)聲明的純虛方法,而此純虛函數(shù)的具體邏輯由該接口的派生類實現(xiàn)。

示意圖:

網(wǎng)狐棋牌游戲平臺服務(wù)器架構(gòu)設(shè)計分析

基于事件驅(qū)動的數(shù)據(jù)處理模型

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

網(wǎng)狐棋牌游戲平臺服務(wù)器架構(gòu)設(shè)計分析
再者,根據(jù)網(wǎng)絡(luò)、數(shù)據(jù)庫等特定功能,構(gòu)建網(wǎng)絡(luò)、數(shù)據(jù)庫等管理服務(wù),實現(xiàn)數(shù)據(jù)隊列服務(wù)鉤子QueueServiceSink方法,調(diào)度事件數(shù)據(jù)執(zhí)行外部處理接口,外部處理接口具體由二次開發(fā)用戶實現(xiàn)。

示意圖:

網(wǎng)狐棋牌游戲平臺服務(wù)器架構(gòu)設(shè)計分析

 

事件數(shù)據(jù)設(shè)計

網(wǎng)狐棋牌游戲平臺服務(wù)器架構(gòu)設(shè)計分析

 

軟件體系結(jié)構(gòu)(架構(gòu) Architecture)設(shè)計

網(wǎng)狐棋牌游戲平臺服務(wù)器架構(gòu)設(shè)計分析

 

功能模塊劃分

網(wǎng)狐棋牌游戲平臺服務(wù)器架構(gòu)設(shè)計分析

 

數(shù)據(jù)隊列服務(wù)QueueService模塊設(shè)計

    基本設(shè)計概念

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

    類與接口設(shè)計

網(wǎng)狐棋牌游戲平臺服務(wù)器架構(gòu)設(shè)計分析

 

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

 

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

 

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

 

內(nèi)部類:

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

 

中心服務(wù)器 名字 類名 繼承 類型
  調(diào)度引擎鉤子 CAttemperEngineSink : public IAttemperEngineSink 接口實現(xiàn)
  數(shù)據(jù)庫引擎鉤子 CDataBaseSink : public IDataBaseSink 接口實現(xiàn)
         
  中心服務(wù)類 CCenterService   核心類
  配置參數(shù) CInitParamter   核心類
         
  連接信息結(jié)構(gòu) CConnectItem   數(shù)據(jù)管理
  連接信息管理 CConnectInfoManager   數(shù)據(jù)管理
  房間連接信息 CConnectItem_GameServer : public CConnectItem 數(shù)據(jù)管理
  廣場連接信息 CConnectItem_Plaza : public CConnectItem 數(shù)據(jù)管理
         
  應(yīng)用程序?qū)ο?/td> CCenterServerApp : public CWinApp MFC
  主對話框 CCenterServerDlg : public CDialog MFC
  配置對話框 CSystemOptionDlg : public CDialog MFC
         
登陸、大廳 名字 類名 繼承 類型
  調(diào)度引擎鉤子 CAttemperEngineSink : public IAttemperEngineSink 接口實現(xiàn)
  數(shù)據(jù)庫引擎鉤子 CDataBaseSink : public IDataBaseSink 接口實現(xiàn)
  中心連接類 CCenterSocket : public IAsynchronismEngineSink,
 public IClientSocketSink
接口實現(xiàn)
         
  登錄服務(wù)類 CLogonService   核心類
  配置參數(shù) CInitParamter   核心類
         
  列表管理 CServerList   數(shù)據(jù)管理
  列表信息 CServerListInfo   數(shù)據(jù)管理
         
  應(yīng)用程序?qū)ο?/td> CLogonServerApp : public CWinApp MFC
  主對話框 CLogonServerDlg : public CDialog MFC
  配置對話框 CSystemOptionDlg : public CDialog MFC
         
游戲裝載器 名字 類名 繼承 類型
  服務(wù)參數(shù)類 CServiceParameter : public CDialog MFC/核心類
  配置參數(shù) CInitParamter   核心類
         
  應(yīng)用程序?qū)ο?/td> CServiceLoaderApp : public CWinApp MFC
  主對話框 CServiceLoaderDlg : public CDialog MFC
  配置對話框 CSystemOptionDlg : public CDialog MFC
         
游戲服務(wù)框架 名字 類名 繼承 類型
  調(diào)度引擎鉤子 CAttemperEngineSink : public IAttemperEngineSink, 
public IGameServiceFrame
接口實現(xiàn)
  數(shù)據(jù)庫引擎鉤子 CDataBaseSink : public IDataBaseSink 接口實現(xiàn)
  中心連接類 CCenterSocket : public IAsynchronismEngineSink,
 public IClientSocketSink
接口實現(xiàn)

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 在线观看精品视频 | 久久视频精品 | 日韩一级片毛片 | 精品成人在线观看 | 亚洲射情| 日本中文一级片 | 午夜影院操 | 久久久久久久午夜 | 99视频在线观看视频 | 国产女厕一区二区三区在线视 | 韩国精品视频在线观看 | 欧美三级欧美成人高清www | 久久久久久69 | 亚洲尻逼视频 | 男女无套免费视频 | 日韩精品久久久久久久电影99爱 | 国产羞羞视频免费在线观看 | 亚洲无线看 | 免费在线观看成年人视频 | 鲁丝片一区二区三区免费入口 | 美女擦逼| 久久国产精品二区 | 亚洲一区二区中文字幕在线观看 | 久久综合一区二区 | 国产流白浆高潮在线观看 | 中国hdxxxx护士爽在线观看 | 亚洲精品 在线播放 | 成人毛片免费网站 | 久草在线高清视频 | 美女久久久久久久久 | 久久国产精品影视 | 一区二区三区视频在线观看 | av手机免费在线观看 | 91精品国产综合久久久欧美 | 日韩在线欧美在线 | 99热1| 得得啪在线视频 | 中文在线免费观看 | 99亚洲国产精品 | 免费小毛片 | 精品国产96亚洲一区二区三区 |