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純粹的 訊息功能 資料庫伺服器純粹的查詢修改資料功能,如果成為瓶...