棋牌開發,手機重庆时时彩开奖五星出售,中部領先的棋牌軟件開發公司-安徽鵬派:棋牌游戲平臺定制,捕魚游戲開發實力派

重庆时时彩开奖五星
咨詢熱線:

400-8080-891

網站公告:

給你介紹有關棋牌游戲服務器的架構設計要點

重庆时时彩开奖五星 www.lxrnrc.com.cn 文章作者:

鵬派棋牌開發

  時間:2017-7-1 15:37:14  熱門搜索:

      在網絡游戲這片市場,棋牌游戲占據了很大一部分市場份額,未來的發展前景也非常大,那么大家對重庆时时彩开奖五星服務器架構設計要點有哪些了解呢?棋牌游戲開發的小編給大家分享一下吧。
  一、棋牌類服務器的特點
  1、棋牌類不分區不分服
  一般來說,棋牌游戲都是不分區不分服的。
  2、房間模式
  即在同一局游戲中就是在同一個房間中,同一個房間中的人可以接收到其他人的消息。
  3、每個房間的操作必須是順序性
  這個特性類似與一般游戲的回合制,每個玩家的操作都是有順序性的。
  二、系統架構
  1、功能設計
  登陸。一般都是需要接第三方登陸,登陸這一塊是http操作,我們統一提供一個web服務,用來做登陸驗證。因為在登陸時,調用第三方的http服務,這個過程可能很慢,如果放在邏輯服務器的話,可能會卡業務邏輯任務。因為可能不同的玩家業務請求可能同在一個線程中,如果有任務卡了,那么這個任務以后新來的請求請會卡住,導致消息延遲。
  獲取游戲公告,也放在web服務中。公告一般是游戲登陸的時候向服務器獲取一次。把它放在web服務器中,與業務邏輯分離的好處是,當業務邏輯服務器維護或更新的時候,不影響用戶的登陸,和獲取公告,這樣用戶體驗會好一些。
  創建用戶唯一的id,因為棋牌類游戲服務器是世界服,無分區,所以用戶的id必須是全局唯一的??梢岳胷edis的incr方法,原子的遞增,如果不想被別人根據userid的遞增推算出有多少注冊用戶,遞增的梯度可以隨機,比如每次遞增的值從1到1024中隨機一個。
  創建房間,當房間主創建房間時,房間的id需要在任何臺服務器上可以查詢到,所以創建房間成功后,房間id要存儲在共享內存redis中,每個房間id對應一個房間所在的ip地址或服務器id。這樣,當有用戶要進入房間,在查詢房間id時,可能判斷這個房間是否和自己登陸的游戲服務器相同。
  查找加入房間。根據房間id查詢房間,查找到房間后,獲取房間所在的ip地址或服務器id,如果發現和自己所登陸的服務器一樣,直接可以加入房間。如果不一樣,把這個房間所在的ip和端口返回給客戶端,讓客戶端重新與房間所在的服務器建立連接,使用登陸時的token驗證用戶。
  游戲腳本調用。在驗證游戲是否合法時,客戶端與服務器都要驗證,驗證的算法是一樣的,所以可以使用腳本來寫,寫一份腳本,在服務器與客戶端中同時使用??梢允褂胠ua。同一個算法使用同一個腳本 ,這樣在開發新的同類型棋牌游戲時,只需要替換一下這個腳本就行了,不用再重復開發。
  2、后臺管理系統
  這個一般是根據運營需求開發的,每個公司不一樣。不過有一點,后臺管理系統可能要和游戲服務器通信,這種通信方式最好是采用redis的訂閱/發布機制。
  3、玩家同屏
  玩家同屏是棋牌游戲中的一個重點,對于做過那些大型的arpg,或mmo游戲的程序員來說,這并不是什么難事。因為同屏就是服務器對客戶端的消息進行轉發。
  三、服務器架構
  1、登陸時,客戶端首先向登陸的web服務器請求登陸信息,登陸成功之后,返回登陸的token,為了適應大規模的web請求和登陸服務的穩定,可以使用nginx做負載均衡。
  2、登陸成功之后,請求負載均衡服務器,獲取一臺連接的業務服務器。這個負載均衡服務器可以和登陸web在一個進程中,也可以獨立出來。
  3、拿到登陸成功的token和需要連接的業務服務器的ip和端口之后,再去連接業務服務器。連接成功之后,要使用token到登陸服務器去驗證,這個用戶是否登陸了。
  4、同一個房間的用戶要連接到同一臺物理服務器上面。在上面已經說過了。
  5、redis用來做共享緩存。
  6、mysql做持久化存儲。
  7、數據庫持久化服務器,統一做數據入庫操作。
  四、需要解決的技術點
  1、數據共享
  因為棋牌類游戲不分區不分服,我們在設計服務器的時候,是按世界服的思想去設計,即服務器是一個n多臺物理機的集群。當用戶登陸服務器,創建房間時,可能根據負載均衡算法,它可以在任何一臺服務器上面。所以,不管用戶登陸到哪一臺服務器上面了,都可以獲得自己的數據。
  2、保證房間操作的順序性
  我們可以把每個房間到達服務器的消息封裝為一個任務,把這個任務放到消息隊列中,然后有一個任務執行者去按順序執行這些任務。創建房間成功之后,接下來的操作都要保證它的順序性,所以房間需要有一個它自己的消息個隊列。
  3、如何進入房間
  在同一局游戲中,我們要求所有人都在同一個房間中,我們可以規定在同一個房間中的用戶,必須登陸到同一臺物理服務器上面。在創建房間完成之后,其他人根據房間號查找房間的時候,可以根據房間號,獲取這個房間所在的服務器ip和端口,判斷一個當前用戶登陸的服務器ip與房間所在的服務器ip是否相同,如果相同,就不做切換,如果不一樣,客戶端就使用ip和端口,連接到房間所在的服務器上面。
  五、關于網關的問題
  1、什么是網關?它是一個網絡連接到另一個網絡的“關口”。按照不同的分類標準,網關也有很多種。
  2、網關的作用:第一,轉發消息包;第二,維護與客戶端的連接。
  3、棋牌類游戲需要網關嗎?我認為不太需要,因為棋牌類游戲業務比較單一,而且開發網關也是一個復雜的工作,沒必要在這個上面花太多的時間。

 

本文由合肥鵬派棋牌開發原創,轉載時請注明棋牌游戲開發商網址:重庆时时彩开奖五星 

【返回列表頁】

地址:合肥市政務區潛山路休寧路交口西南角(合肥市市政府北)中僑中心C座2216室 電話:+0551-66119879 | 企業法人營業執照網站地圖   | 皖ICP備15021203號-4

安徽鵬派棋牌游戲開發公司專業提供棋牌開發,棋牌游戲開發,APP棋牌游戲開發,手機棋牌游戲開發,房卡棋牌游戲開發,麻將棋牌游戲開發, 網絡棋牌游戲開發,棋牌游戲開發定制。
Copyright? 2010-2019 安徽鵬派棋牌游戲開發公司

重庆时时彩开奖五星6facc7d6523d203318105e703e47b8c1.png