Login Server

游戲服務(wù)器登錄認(rèn)證

游戲需進(jìn)行登錄惨好、賬號密碼驗證埠巨、上線下線記錄等,當(dāng)客戶端向游戲服務(wù)器連接之前虾标,先和賬號登錄服務(wù)器連接寓盗。另一種情況是客戶端直接和游戲服務(wù)器相連,然后游戲服務(wù)器作為客戶端的代理向賬號登錄服務(wù)器進(jìn)行驗證。驗證后獲取游戲服務(wù)器列表傀蚌,由玩家選擇進(jìn)入那個游戲服務(wù)器基显。

賬號登錄服務(wù)器

賬號登錄服務(wù)器具有兩個職責(zé),分別是管理賬號和驗證賬號善炫。

  • 管理賬號
    賬號的注冊生成撩幽、刪除等操作,賬號一般會使用數(shù)據(jù)庫進(jìn)行管理箩艺。
  • 驗證賬號
    注冊后會生成賬號摸航,登錄游戲時會輸入賬號密碼或通過第三方登錄的方式來操作。

登錄行為中可能會出現(xiàn)的異常情況

  • 同一賬戶在多個終端登錄
  • 同一賬戶登錄報文被持續(xù)多次發(fā)送
  • 登錄過程中某服務(wù)進(jìn)程失效
  • 登錄過程中終端連接已斷開

為保證登錄過程的健壯舅桩,可使用多段登錄、服務(wù)器無狀態(tài)化雨膨、時序圖推到擂涛。

  • 多段登錄

登錄過程越長設(shè)計的服務(wù)進(jìn)程越多,不確定因素風(fēng)險也就越大聊记。 若服務(wù)器架構(gòu)合理可將服務(wù)器架構(gòu)按功能區(qū)塊化即微服化撒妈,根據(jù)分而治之的原理,將整個登錄過程拆分為多個模塊排监,每個登錄處理模塊相對獨立做成多段式登錄狰右。

多段登錄好處在于

  • 登錄復(fù)雜度被降冪,登錄過程簡化舆床。
  • 多段登錄中即使某段登錄不成功也只會讓某部分游戲功能失效棋蚌。

多段登錄常見劃分形式

  • 大廳段登錄以保證能夠正常進(jìn)入大廳
  • 房間段登錄以保證能夠正常進(jìn)入房間
  • 跨服網(wǎng)關(guān)段登錄以保證正常跨服操作挨队,比如跨服聊天等谷暮。

服務(wù)無狀態(tài)化

多服務(wù)進(jìn)程間通信之所以容易產(chǎn)生問題,其中一個很大的原因是代碼實現(xiàn)中會在多個進(jìn)程中保存同一賬號相關(guān)的數(shù)據(jù)盛垦,因此容易發(fā)生服務(wù)進(jìn)程間數(shù)據(jù)不同步湿弦。所有類型服務(wù)器都可以做成無狀態(tài)化的,這樣登錄過程的復(fù)雜度又降低了一個冪次腾夯。

時序圖推導(dǎo)

多服務(wù)器交互過程中如果直接編碼颊埃,從代碼上反查通常會很苦難。如果有工具能將整個過程清晰的描繪出來蝶俱,那么檢查其中的錯誤會方便很多班利。整個流程都確定后再編碼,可以事半功倍跷乐。而這個工具就是時序圖肥败。


大廳登錄

登錄涉及服務(wù)

大廳段登錄會涉及到的服務(wù)進(jìn)程包括客戶端Client、登錄服Login、大廳服Lobby馒稍、緩存服Cache皿哨、數(shù)據(jù)庫服DB。

  • Login 負(fù)責(zé)賬號驗證纽谒,包括第三方平臺賬號驗證证膨。
  • Lobby 負(fù)責(zé)個人業(yè)務(wù),不涉及多玩家交互鼓黔。

登錄實現(xiàn)思路

  1. Login央勒、Lobby無狀態(tài)化,數(shù)據(jù)臨時存放在Cache中澳化。
  2. Login通過DB驗證賬號密碼并將自己和Lobby的令牌存入Cache
  3. Client通過令牌正常與Login和Lobby交互

登通信方式

從傳統(tǒng)的角度來看首先會先到使用TCP崔步,如果使用HTTP登錄流程的復(fù)雜度將再次降冪,可以基于大型網(wǎng)站運(yùn)維手段部署Login和Lobby缎谷,因此采用HTTP作為通訊手段井濒。

目前蘋果公司app商家審核是禁止HTTP通信的,所以最好使用HTTPS作為通信協(xié)議列林。使用HTTPS的好處是信息被加密瑞你,同時帶來缺點是服務(wù)器資源額外的開銷,包括CPU和帶寬等希痴。

登錄令牌

對于TCP連接而言者甲,Token令牌只用于連接后的第一次身份驗證,隨后Token失效砌创,因此可以認(rèn)為是非常安全的虏缸。而對HTTP/HTTPS來說,由于是基于短連接的纺铭,因此每次請求都必須攜帶Token寇钉,這就有可能存在Token被盜用而偽造請求的情況。因此可以將Token做加密處理舶赔,比如使用md5(token + salt)的方式扫倡,讓salt變化即生成動態(tài)令牌。

登錄時序

登錄時序

多終端登錄

  • 當(dāng)暫無賬號信息創(chuàng)建賬號時竟纳,實現(xiàn)中必須保證當(dāng)且僅當(dāng)沒有賬號數(shù)據(jù)時才創(chuàng)建賬號撵溃。
  • 最后終端將重置令牌,因此之前的終端中的令牌局部可用锥累。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末缘挑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子桶略,更是在濱河造成了極大的恐慌语淘,老刑警劉巖诲宇,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異惶翻,居然都是意外死亡姑蓝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門吕粗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纺荧,“玉大人,你說我怎么就攤上這事颅筋≈嫦荆” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵议泵,是天一觀的道長占贫。 經(jīng)常有香客問我,道長先口,這世上最難降的妖魔是什么靶剑? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮池充,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘缎讼。我一直安慰自己收夸,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布血崭。 她就那樣靜靜地躺著卧惜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪夹纫。 梳的紋絲不亂的頭發(fā)上咽瓷,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機(jī)與錄音舰讹,去河邊找鬼茅姜。 笑死,一個胖子當(dāng)著我的面吹牛月匣,可吹牛的內(nèi)容都是我干的钻洒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼锄开,長吁一口氣:“原來是場噩夢啊……” “哼素标!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起萍悴,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤头遭,失蹤者是張志新(化名)和其女友劉穎寓免,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體计维,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡袜香,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了享潜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片困鸥。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖剑按,靈堂內(nèi)的尸體忽然破棺而出疾就,到底是詐尸還是另有隱情,我是刑警寧澤艺蝴,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布猬腰,位于F島的核電站,受9級特大地震影響猜敢,放射性物質(zhì)發(fā)生泄漏姑荷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一缩擂、第九天 我趴在偏房一處隱蔽的房頂上張望鼠冕。 院中可真熱鬧,春花似錦胯盯、人聲如沸懈费。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽憎乙。三九已至,卻和暖如春叉趣,著一層夾襖步出監(jiān)牢的瞬間泞边,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工疗杉, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留阵谚,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓烟具,卻偏偏與公主長得像椭蹄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子净赴,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353