TYPESDK手游聚合SDK服務(wù)端設(shè)計(jì)思路與架構(gòu)之一:應(yīng)用場(chǎng)景分析

2018-01-17 14:16 更新

作為一個(gè)渠道SDK統(tǒng)一接入框架,TYPESDK從一開始,所面對(duì)的需求場(chǎng)景就是多款游戲,通過一個(gè)統(tǒng)一的SDK服務(wù)端,能夠同時(shí)接入幾十個(gè)甚至幾百個(gè)各種渠道的SDK。而且這些渠道接口的具體接入字段和接入邏輯,每個(gè)月以至每周,都可能發(fā)生或大或小的變動(dòng)。在這樣一個(gè)復(fù)雜的應(yīng)用場(chǎng)景下,我們應(yīng)該如何設(shè)計(jì)一個(gè)足夠強(qiáng)大而又足夠靈活的SDK服務(wù)端呢?

         首先我們需要厘清,在整個(gè)應(yīng)用場(chǎng)景中,TYPESDK所處的位置,以及它所需要實(shí)現(xiàn)的核心功能。

        

圖1

如圖1所示,TYPESDK服務(wù)端最關(guān)心的接口,是游戲服務(wù)端與TYPESDK服務(wù)端之間的通信接口,以及渠道服務(wù)端與TYPESDK服務(wù)端之間的通信接口。以登錄流程為例,就是游戲服務(wù)端向TYPESDK服務(wù)端發(fā)起的驗(yàn)證用戶請(qǐng)求和渠道服務(wù)端向TYPESDK服務(wù)端返回的驗(yàn)證結(jié)果;以支付流程為例,就是渠道服務(wù)端向TYPESDK服務(wù)端發(fā)起的支付完成回調(diào)和TYPESDK服務(wù)端向游戲服務(wù)端發(fā)起的發(fā)貨請(qǐng)求。

         下面我們分別就這兩個(gè)主要流程進(jìn)行分析:

        

圖2

流程說明

  1. 用戶點(diǎn)擊登錄按鈕時(shí),游戲客戶端調(diào)用TypeSDK登錄接口,詳細(xì)調(diào)用方式及參數(shù)說明請(qǐng)參考客戶端接口文檔
  2. TypeSDK客戶端調(diào)用渠道客戶端SDK的API登錄
  3. 渠道客戶端SDK自我機(jī)制請(qǐng)求渠道服務(wù)端
  4. 渠道客戶端SDK獲取服務(wù)端返回的驗(yàn)證用參數(shù)
  5. TypeSDK客戶端獲取渠道客戶端SDK獲得的參數(shù)并包裝
  6. 游戲客戶端獲取包裝后的參數(shù)
  7. 游戲客戶端將包裝后參數(shù)用自身機(jī)制傳輸給游戲服務(wù)端
  8. 游戲服務(wù)端訪問TypeSDK服務(wù)端的用戶會(huì)話驗(yàn)證接口。將流程6中獲得的參數(shù)傳送給TypeSDK服務(wù)端。
  9. TypeSDK服務(wù)端訪問渠道服務(wù)端的用戶驗(yàn)證接口,進(jìn)行登錄驗(yàn)證
  10. 渠道返回驗(yàn)證結(jié)果
  11. TypeSDK服務(wù)端對(duì)渠道返回的驗(yàn)證結(jié)果進(jìn)行包裝,返回給游戲服務(wù)端游戲服務(wù)端根據(jù)渠道驗(yàn)證結(jié)果,通知游戲客戶端本次登錄是否成功。

 

從以上的流程中可以分析出,在登錄流程中,TYPESDK服務(wù)端所需要完成的工作就是完成一個(gè)包裝的動(dòng)作。將游戲服務(wù)端提供的標(biāo)準(zhǔn)化的參數(shù),根據(jù)渠道的要求進(jìn)行分別包裝,讓數(shù)據(jù)符合渠道服務(wù)端的需求,隨后提交給渠道服務(wù)端。然后再把各種渠道返回的千奇百怪的驗(yàn)證結(jié)果做出區(qū)分解析,再通知游戲服務(wù)端,以供游戲邏輯使用。

 

 

圖3

流程說明

  1. 充值訂單到帳后,渠道服務(wù)端異步通知TYPESDK服務(wù)端
  2. TYPE服務(wù)端通知游戲服務(wù)端發(fā)貨
  3. 游戲服務(wù)端收到發(fā)貨請(qǐng)求后先保存該請(qǐng)求,立刻返回TYPESDK服務(wù)端,表示已收到發(fā)貨請(qǐng)求。
  4. TYPESDK返回渠道服務(wù)端
  5. 游戲服務(wù)端異步處理發(fā)貨邏輯。并通知游戲客戶端

 

再看充值到帳流程,在這個(gè)簡(jiǎn)化版的充值到帳流程中,我們可以看到,TYPESDK服務(wù)端所完成的工作也是一個(gè)簡(jiǎn)單的包裝動(dòng)作,將各種不同的渠道回調(diào)請(qǐng)求包裝成標(biāo)準(zhǔn)的數(shù)據(jù)格式,通知給游戲服務(wù)端,供游戲處理發(fā)貨。

根據(jù)以上分析,我們就理清了TYPESDK服務(wù)端在整個(gè)流程中的位置和主要工作。在接下來的文章中,我們?cè)倬唧w的分析,怎樣的設(shè)計(jì),才能讓它更好的適應(yīng)靈活多變的應(yīng)用場(chǎng)景,應(yīng)付主要風(fēng)險(xiǎn)。以及如何將各大渠道的服務(wù)端SDK,接入我們這個(gè)統(tǒng)一的框架中。

這個(gè)項(xiàng)目已開源,大家有興趣可以自己研究或者參照項(xiàng)目編寫自己的聚合SDK

項(xiàng)目地址:https://code.csdn.net/typesdk_code

項(xiàng)目地址:https://github.com/typesdk

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)