国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

源碼動態|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
接口實現

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美精品一区二区三区在线播放 | 中文字幕一区二区三区四区 | 国产片性视频免费播放 | www.国产区 | 黄色片免费看 | 午夜精品福利电影 | 久久久久久久久99精品 | 一二三四区视频在线观看 | 精品免费国产一区二区三区 | 欧美一区二区三区在线观看 | 午夜999| 性网站在线观看 | 综合久久久久 | 一级特黄录像免费播放全99 | 久草视频在线播放 | 色天天综合 | 欧美高清视频在线观看 | 欧美视频在线播放 | 精品国产一区二区三区性色av | 久久久国产视频 | 国内外成人激情免费视频 | 亚洲国产精品美女 | 中文字幕在线一区二区三区 | 国产精品二区一区二区aⅴ污介绍 | 97色伦97色伦国产欧美空 | 亚洲欧美中文日韩在线 | 日韩高清一区二区 | 九九热精品视频在线免费观看 | 99热在线观看免费 | 国产中文字幕在线看 | 精品国产乱码久久久久久丨区2区 | 在线日韩中文字幕 | 欧美1级片 | 亚洲欧美视频 | a级国产黄色片 | 中文在线一区二区 | 亚洲欧美精品一区二区 | 日韩中文一区二区三区 | 久久夜色精品国产 | 亚洲精品在线看 | 成人免费视频网站在线看 |