在前一篇文中,我們對(duì)一個(gè)聚合SDK服務(wù)端所需要實(shí)現(xiàn)的功能作了簡(jiǎn)單的分析。通過(guò)兩個(gè)主要場(chǎng)景的功能流程圖,我們可以看到,作為多款游戲要適配多個(gè)渠道的統(tǒng)一請(qǐng)求轉(zhuǎn)發(fā)中心,TYPESDK服務(wù)端主要需要實(shí)現(xiàn)的功能有以下幾個(gè)要點(diǎn):
l 接收請(qǐng)求和返回響應(yīng),通常是HTTP的請(qǐng)求響應(yīng)。
l 獲取配置信息。
n 識(shí)別游戲,根據(jù)請(qǐng)求中的信息,獲取到具體游戲的相關(guān)配置。
n 識(shí)別渠道,根據(jù)請(qǐng)求中的信息,獲取針對(duì)具體渠道的配置。
n 根據(jù)請(qǐng)求中的信息,獲取特定游戲在渠道上的參數(shù)
l 處理請(qǐng)求邏輯,根據(jù)請(qǐng)求種類不同(登錄,支付),處理流程不同。
為了靈活方便地對(duì)不同渠道的通信邏輯做出配置和對(duì)應(yīng)。我們需要將特定的渠道邏輯和配置作一個(gè)簡(jiǎn)單的抽象,以接口-實(shí)現(xiàn)的方式將渠道邏輯封裝成為獨(dú)立模塊。以下可以做出一個(gè)簡(jiǎn)單的服務(wù)端流程圖。
圖1
這樣一來(lái),我們可以將整個(gè)TYPESDK服務(wù)端的架構(gòu)拆分為以下主要模塊/類:
l HTTP處理框架
n 處理HTTP協(xié)議,接收請(qǐng)求,返回響應(yīng)。
l 配置處理工具類
n 從持久化位置讀取配置至內(nèi)存?zhèn)溆?/p>
l 邏輯模塊管理器
n 統(tǒng)一管理和加載各渠道的邏輯模塊
l 各渠道邏輯模塊
l 主邏輯流程控制器
而其中牽涉到的實(shí)體類大致有如下:
l 渠道配置類
l 游戲配置類
l 用戶信息類
l 訂單信息類
l 其他中間封裝類(請(qǐng)求req,返回resp等等),不再贅述
根據(jù)以上分析,聚合SDK服務(wù)端的整體設(shè)計(jì)就完成了,無(wú)論使用何種語(yǔ)言技術(shù),都可以實(shí)現(xiàn)出一個(gè)簡(jiǎn)單的服務(wù)端。但是,這個(gè)服務(wù)端在具體的邏輯上還存在邏輯缺失,在實(shí)際應(yīng)用中還不能滿足我們的使用需求。以下的文章里,我們會(huì)簡(jiǎn)單列舉若干實(shí)際接入中遇到問(wèn)題以及設(shè)計(jì)上的解決方案。
這個(gè)項(xiàng)目已開源,大家有興趣可以自己研究或者參照項(xiàng)目編寫自己的聚合SDK
項(xiàng)目地址:https://code.csdn.net/typesdk_code
項(xiàng)目地址:https://github.com/typesdk
更多建議: