關於棋牌菠菜高防伺服器的一些問題

2021-08-19 05:30:29 字數 1280 閱讀 7631

關於棋牌菠菜高防伺服器的一些問題

系統架構

1,功能設計

棋牌菠菜高防伺服器

a,登陸

一般都是需要接第三方登陸,登陸這一塊是http操作,我們統一提供乙個web服務,用來做登陸驗證。因為在登陸時,呼叫第三方的http服務,這個過程可能很慢,如果放在邏輯伺服器的話,可能會卡業務邏輯任務。因為可能不同的玩家業務請求可能同在乙個執行緒中,如果有任務卡了,那麼這個任務以後新來的請求請會卡住,導致訊息延遲。

棋牌菠菜高防伺服器

b,獲取遊戲公告,也放在web服務中。公告一般是遊戲登陸的時候向伺服器獲取一次。把它放在web伺服器中,與業務邏輯分離的好處是,當業務邏輯伺服器維護或更新的時候,不影響使用者的登陸,和獲取公告,這樣使用者體驗會好一些。

棋牌菠菜高防伺服器

c,建立使用者的id,因為棋牌類遊戲伺服器是世界服,無分割槽,所以使用者的id必須是全域性的。可以利用redis的incr方法,原子的遞增,如果不想被別人根據userid的遞增推算出有多少註冊使用者,遞增的梯度可以隨機,比如每次遞增的值從1到1024中隨機乙個。

d,建立房間,當房間主建立房間時,房間的id需要在任何臺伺服器上可以查詢到,所以建立房間成功後,房間id要儲存在共享記憶體redis中,每個房間id對應乙個房間所在的ip位址或伺服器id.這樣,當有使用者要進入房間,在查詢房間id時,可能判斷這個房間是否和自己登陸的遊戲伺服器相同。

棋牌菠菜高防伺服器

e,查詢加入房間

根據房間id查詢房間,查詢到房間後,獲取房間所在的ip位址或伺服器id,如果發現和自己所登陸的伺服器一樣,直接可以加入房間。如果不一樣,把這個房間所在的ip和埠返回給客戶端,讓客戶端重新與房間所在的伺服器建立連線,使用登陸時的token驗證使用者。

f,遊戲指令碼呼叫

在驗證遊戲是否合法時,客戶端與伺服器都要驗證,驗證的演算法是一樣的,所以可以使用指令碼來寫,寫乙份指令碼,在伺服器與客戶端中同時使用。可以使用lua。同乙個演算法使用同乙個指令碼 ,這樣在開發新的同型別棋牌遊戲時,只需要替換一下這個指令碼就行了,不用再重複開發。

棋牌菠菜高防伺服器

3,後台管理系統

這個一般是根據運營需求開發的,每個公司不一樣。不過有一點,後台管理系統可能要和遊戲伺服器通訊,這種通訊方式是採用redis的訂閱/發布機制。這樣可以把某個訊息事件同時傳送到所有的業務伺服器上面。根據使用者所在的伺服器進行處理。

4,玩家同屏

玩家同屏是棋牌遊戲中的乙個重點,對於做過那些大型的arpg,或mmo遊戲的程式設計師來說,這並不是什麼難事。因為同屏就是伺服器對客戶端的訊息進行**。乙個房間四個人,乙個人出的牌或操作能被其他三個人同時看到。

棋牌菠菜高防伺服器

為什麼要使用高防伺服器,一些常見的伺服器攻擊手段

隨著網際網路的迅猛發展,惡意攻擊者所控制的肉雞攻擊也越來越兇猛,在這樣的環境下,不少 遭到攻擊,不少的使用者因為各類網路攻擊損失巨大 無論是正規企業 遊戲 購物 都有可能遭受同行競爭攻擊。攻擊可使 崩潰,伺服器強行關閉,客戶不能訪問,導致利益的流失。常見的 攻擊有兩種 1 流量攻擊,就是我們常說的d...

高防伺服器的優勢

高防伺服器在安全防護方面的力度是非常強大的,因為我們在使用的過程裡面,的安全是非常重要的,所以,我們選擇高防伺服器來使用也會讓我們的 安全性得到最大限度的保護,所以,現在很多網際網路都是通過高防伺服器來保障自己的網路安全的,另外,現在很多人都使用高防伺服器的乙個重要的原因就是因為高防伺服器在軟硬體方...

關於web伺服器TIME WAIT值高的問答

發件人 周 收件人 sery 抄送 主題 請教問題 我看你們的伺服器的連線都是比較正常的 root 381263 conf netstat n awk tcp end end close wait 6 fin wait1 114 fin wait2 76 established 675 syn re...