鍍金池/ 問(wèn)答/PHP  數(shù)據(jù)庫(kù)/ swoole 開(kāi)發(fā)游戲服務(wù)端

swoole 開(kāi)發(fā)游戲服務(wù)端

現(xiàn)在準(zhǔn)備使用swoole開(kāi)發(fā)游戲服務(wù)端,暫時(shí)不考慮其他語(yǔ)言,因?yàn)楣緵](méi)有熟悉其他語(yǔ)言,而且項(xiàng)目截止時(shí)間馬上要到
我想問(wèn)的是,比如在開(kāi)發(fā)服務(wù)端的時(shí)候,游戲上面有一個(gè)動(dòng)作只有金幣達(dá)到多少才能操作,這個(gè)server收到客戶(hù)端的socket請(qǐng)求,判斷金幣,這個(gè)從數(shù)據(jù)庫(kù)判斷嗎?前期預(yù)估tcp鏈接數(shù)大概有10w 如果直接從數(shù)據(jù)庫(kù)判斷感覺(jué)壓力太大,另外我還需要保證數(shù)據(jù)完整性!如果真要這樣做,數(shù)據(jù)庫(kù)這塊要一主多從,swoole里面的邏輯處理全部提交給task進(jìn)城,處理完成之后推送到游戲客戶(hù)端,,,這樣我擔(dān)心有延遲!

目前想采用辦法是:
1:客戶(hù)端sokcet鏈接服務(wù)器
2:游戲上的某個(gè)操作動(dòng)作 commit一個(gè)動(dòng)作
3:后端根據(jù)這個(gè)動(dòng)作進(jìn)行處理 邏輯判斷
邏輯判斷這塊
從數(shù)據(jù)庫(kù)查詢(xún)相關(guān)的數(shù)據(jù)進(jìn)行比對(duì)(比如用戶(hù)的金幣)如果失敗那么直接推送給客戶(hù)端一個(gè)消息
如果成功那么可能還要修改數(shù)據(jù)庫(kù) 插入數(shù)據(jù)庫(kù)一些相關(guān)的數(shù)據(jù) ,最后推送給客戶(hù)端成功的標(biāo)識(shí)!!!!!

請(qǐng)大家發(fā)表意見(jiàn)!謝謝

回答
編輯回答
萌吟
  1. 登錄之后把用戶(hù)信息寫(xiě)到redis/memcached這種緩存里面
  2. 所有計(jì)算都基于緩存計(jì)算
  3. 后臺(tái)進(jìn)程定期把緩存數(shù)據(jù)存入數(shù)據(jù)庫(kù)

你試試看可不可以達(dá)到尼的效果?

2017年9月2日 09:00
編輯回答
陌南塵

首先應(yīng)該是登錄獲取token,然后會(huì)有一個(gè)網(wǎng)關(guān)服務(wù)器去判斷用戶(hù)與gameServer之間是否連接吧?請(qǐng)問(wèn)你是怎么解決的?

2017年4月30日 23:08