網狐架構之遊戲 裝載子遊戲服務 伺服器

2021-10-03 15:30:19 字數 2334 閱讀 7022

gameserver.exe

啟動過程分析:

1:cgameserverdlg::oninitdialog()

m_serviceunits.setserviceunitssink(this);

m_piserviceunitssink=piserviceunitssink;// 同協調伺服器過程

注意此cserviceunits隸屬於遊戲伺服器的cserviceunits

2:建立房間

cgameserverdlg::onbnclickedcreateserver()

獲取serverparameter.ini"中配置的平台資料相關配置

cdlgserverwizarditem1::oninitdialog()

cdlgserverwizarditem1::loaddbmoduleitem()

連線上資料庫的qpplatformdb表獲取內容並填充介面list

3:啟動服務

cgameserverdlg::onbnclickedstartservice()

m_serviceunits.startservice();

cserviceunits::createservicedll()//建立模組

建立時間 排程 網路服務 網路引擎 記錄資料庫引擎 核心資料庫引擎 遊戲模組

cserviceunits::initializeservice()

獲取到平台和金幣資料庫配置資訊

類似下面的函式呼叫為呼叫儲存過程

儲存過程:如開啟資料庫qpplatformdb,展開可程式設計性,開啟儲存過程即可檢視各個儲存過程,如下面函式呼叫的儲存過程名為gsp_gs_loaddatabaseinfo,但網狐儲存過程加密,暫未找到辦法開啟。

platformdbaide.executeprocess(text(「gsp_gs_loaddatabaseinfo」),true)

cdatabaseaide::executeprocess

繫結排程引擎 ,記錄資料庫引擎 ,核心資料庫引擎 介面

設定事件 定時器引擎 排程引擎 網路引擎 網路服務

配置網路

m_tcpnetworkengine->setserviceparameter(m_gameserviceoption.wserverport(0),m_gameserviceoption.wmaxplayer,szcompilation);//注意,埠未指定,後面再啟動遊戲後隨即監聽乙個可用埠

cserviceunits::startkernelservice()//啟動核心

啟動各個引擎及服務

sendcontrolpacket(ct_load_service_config,null,0);// 載入配置

載入配置 列表 機器 道具

m_pidbcorrespondmanager->postdatabaserequest(0l,dbr_gr_load_game_property,0l,null,0l);//載入道具

m_pidatabaseengineevent->oneventdatabaseresult(dbo_gr_game_property_info,dwcontextid,&gamepropertyinfo,wheadsize+wdatasize);

senduicontrolpacket(ui_service_config_result,&controlresult,sizeof(controlresult));

case ui_service_config_result: //配置結果

startnetworkservice()//啟動網路引擎

sendcontrolpacket(ct_connect_correspond,null,0);//連線協調伺服器

m_pitcpsocketservice->connect(pcorrespondaddress->szaddress,m_pinitparameter->m_wcorrespondport);

此時在協調伺服器的對應響應函式case sub_cs_c_register_server: //

中cattemperenginesink::sendserverlistitem(dword dwsocketid)

m_pitcpnetworkengine->senddata(dwsocketid,mdm_cs_service_info,sub_cs_s_server_finish);

然後又回到遊戲(裝載)伺服器中的

case ui_correspond_result: //協調成功

setservicestatus(servicestatus_service);

即提示lpctstr pszdescribe=text(「服務啟動成功」);

網狐棋牌遊戲服務端架構設計原理

本文 http blog.csdn.net dotnet90 archive 2009 05 05 4152401.aspx 基本設計概念和處理流程 呼叫模型 利用物件導向思想多型性,呼叫方儲存著被呼叫方的基礎介面指標 一般稱呼為 鉤子 呼叫方直接呼叫介面指標裡面方法,方法具體實現邏輯由 該介面的派...

網狐棋牌遊戲服務端架構設計原理

基本設計概念和處理流程 呼叫模型 利用物件導向思想多型性,呼叫方儲存著被呼叫方的基礎介面指標 一般稱呼為 鉤子 呼叫方直接呼叫介面指標裡面方法,方法具體實現邏輯由 該介面的派生類實現.示意圖 基於事件驅動的資料處理模型 為系統功能設計,需要處理網路事件資料socketevent,資料庫事件資料dat...

遊戲伺服器架構

登陸伺服器判斷賬戶合法性,如果合法的話,把session資訊寫入memcache,閘道器伺服器收到玩家連線請求後,在memcache裡查詢是否合法玩家,防止非法連線。閘道器伺服器要管理玩家連線,需要高併發,可以開多個 scene mgr純粹的 訊息功能 資料庫伺服器純粹的查詢修改資料功能,如果成為瓶...