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

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

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

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

請大家發(fā)表意見!謝謝

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

你試試看可不可以達到尼的效果?

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

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

2017年4月30日 23:08