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