環(huán)信SDK的基礎(chǔ)架構(gòu)體系課件_第1頁(yè)
環(huán)信SDK的基礎(chǔ)架構(gòu)體系課件_第2頁(yè)
環(huán)信SDK的基礎(chǔ)架構(gòu)體系課件_第3頁(yè)
環(huán)信SDK的基礎(chǔ)架構(gòu)體系課件_第4頁(yè)
環(huán)信SDK的基礎(chǔ)架構(gòu)體系課件_第5頁(yè)
已閱讀5頁(yè),還剩57頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

主要內(nèi)容IMSDK基本要素IMSDK架構(gòu)開發(fā)IMSDK的挑戰(zhàn)與應(yīng)對(duì)主要內(nèi)容IMSDK基本要素IMSDK的基本要素連接管理消息會(huì)話好友管理通知實(shí)時(shí)音視頻擴(kuò)展IMSDK的基本要素連接管理長(zhǎng)連接與短連接SDKIM

ServerHTTP

Server心跳消息消息上傳長(zhǎng)連接與短連接SDKIMServerHTTPServer長(zhǎng)連接TCP連接及時(shí)收到服務(wù)器的推送占用服務(wù)器大量資源長(zhǎng)連接TCP連接短連接HTTP連接前端發(fā)起HTTP請(qǐng)求,通常情況下每次請(qǐng)求都會(huì)創(chuàng)建個(gè)新連接(設(shè)置keep-alive除外),每次返回?cái)?shù)據(jù)后server就會(huì)關(guān)閉連接服務(wù)器不會(huì)特殊管理連接,減輕服務(wù)器負(fù)擔(dān)短連接HTTP連接心跳?;疃〞r(shí)通知服務(wù)器連接存在服務(wù)器設(shè)定TCP

keep-alive

time過期沒有收到數(shù)據(jù)啟動(dòng)探針多次探測(cè)沒有收到前端響應(yīng),關(guān)掉相應(yīng)連接即時(shí)刷新路由器NAT(

NetworkAddressTranslation)內(nèi)外網(wǎng)IP映射表只保存最新連接老連接會(huì)被移除心跳?;疃〞r(shí)通知服務(wù)器連接存在連接DNS配置防止DNS劫持獲取DNS配置列表不同的APP會(huì)對(duì)應(yīng)不同的Server

IP連接DNS配置防止DNS劫持重連重連原因主動(dòng)斷網(wǎng),切網(wǎng)服務(wù)器主動(dòng)斷開連接(connection

reset

by

peer)路由器外網(wǎng)斷開永遠(yuǎn)重連New

thread.start

->wait(random(time))

while(true

and

not

coneccted){

reconnect()

wait(random(time))}始終保持同一個(gè)連接實(shí)例避免自踢重連重連原因消息消息IDGlobal

Unique

ID消息類型收發(fā)方IDTo,

FromBind

ResourceMobilePC消息bodyIDfromtobodyBindtype消息消息IDIDfromtobodyBindtype<messageid=“0123456789”To=uni3From=un8/mobiletype="chat"><body>{"from":"uni8","to":"uni3","bodies":[{"type":"txt","msg":"測(cè)試"}],"ext":{}}</body></message><messageid=“0123456789”支持多種聊天模型單聊群組模型聊天室模型支持多種消息類型Text,Image,VideoFile透?jìng)飨⒅С謹(jǐn)U展消息支持多種聊天模型消息發(fā)送與回執(zhí)消息發(fā)送與回執(zhí)離線消息離線消息對(duì)方不在線,沒有相應(yīng)的session服務(wù)器沒有收到收方的回執(zhí)消息體內(nèi)含離線標(biāo)識(shí)獲取方式服務(wù)器推大量離線導(dǎo)致效率低下送(push)試想如果推送2000條離線?客戶端拉取(pull)根據(jù)消息ID獲取逐頁(yè)去獲取離線消息離線消息附件消息圖片,語(yǔ)音,視頻,文件,等類型的消息統(tǒng)一為附件消息如何發(fā)送方案一直接走長(zhǎng)連接方案二先上傳附件到服務(wù)器獲取附件UID再把載有UID的IM消息IM

Server收方讀取消息,根據(jù)UID下載附件到本地大小限制附件消息圖片,語(yǔ)音,視頻,文件,等類型的消息統(tǒng)一為附件消息附件消息附件消息會(huì)話管理消息管理消息查詢,刪除,插入批量消息加載批量消息導(dǎo)入消息發(fā)送已讀標(biāo)記會(huì)話管理消息管理好友管理添加好友刪除好友黑名單管理群組管理好友管理添加好友添加好友添加好友通知事件通知新消息,已讀,已送達(dá)通知API回調(diào)加減聯(lián)系人,群組,聊天室相關(guān)通知SDK只負(fù)責(zé)消息通知SDK不負(fù)責(zé)鈴聲,震動(dòng),提醒等定制化模塊通知事件通知實(shí)時(shí)音視頻支持實(shí)時(shí)音視頻使用Jingle

XMPP擴(kuò)展協(xié)議作為控制信令使用ICE作為P2P打洞協(xié)議支持媒體relay中繼功能多人語(yǔ)音功能內(nèi)部測(cè)試中實(shí)時(shí)音視頻支持實(shí)時(shí)音視頻支持?jǐn)U展消息的擴(kuò)展通過擴(kuò)展屬性會(huì)話的擴(kuò)展通過擴(kuò)展字段其他擴(kuò)展,如安全性通過插件擴(kuò)展支持?jǐn)U展消息的擴(kuò)展總體設(shè)計(jì)總體設(shè)計(jì)模塊的劃分平臺(tái)層會(huì)根據(jù)各平臺(tái)的不同,實(shí)現(xiàn)不同的接口,開放符合平臺(tái)層的API給第三方開發(fā)者。

適配層主要要適配到ONESDK核心層所需要的一些接口,起到承上啟下的作用。

核心層主要提供IM功能和業(yè)務(wù)邏輯,保證最大化的代碼重用模塊的劃分平臺(tái)層會(huì)根據(jù)各平臺(tái)的不同,實(shí)現(xiàn)不同的接口,開放符合AppvsSDK共同點(diǎn):易用性,穩(wěn)定性,可擴(kuò)展等用戶vs開發(fā)者單一平臺(tái)vs多平臺(tái)功能多vs接口少(RichfeaturesvsLessAPIs)可裁剪性對(duì)待錯(cuò)誤的使用:忽略vs提示測(cè)試出發(fā)點(diǎn):模擬用戶vs模擬程序員?安全性NotasgeneralsinglefunctionSDKsuchasvoicerecognition,map,etcAppvsSDK共同點(diǎn):易用性,穩(wěn)定性,可擴(kuò)展等LessAPIFa?adePatternPrivateclassdataLessAPIFa?adePattern裁剪性用戶需求不同,可以選擇配置不同的功能基礎(chǔ)功能+群組功能+實(shí)時(shí)音視頻裁剪性用戶需求不同,可以選擇配置不同的功能安全性插件式設(shè)計(jì)用戶可以提供自己的加密方式安全性插件式設(shè)計(jì)日志日志開關(guān)日志級(jí)別日志內(nèi)容日志日志開關(guān)測(cè)試單元測(cè)試-

Unit

TestAPI

TestDeveloper’s

taskCode

will

be

rejected

without

unit

test集成測(cè)試-

Integration

Test性能測(cè)試穩(wěn)定性測(cè)試手動(dòng)測(cè)試-

Manual

Test功能性測(cè)試用戶體驗(yàn)測(cè)試測(cè)試單元測(cè)試-UnitTestMore?KeepItSimple,Stupid(KISS)S.O.L.I.DSingleResponsibilityPrinciple(SRP)Open/ClosedPrinciple(OCP)Liskovsubstitutionprinciple(LSP)InterfaceSegregationPrinciple(ISP)DependencyInversionPrinciple(DIP)

WriteCodefortheMaintainerMore?KeepItSimple,Stupid(KQ&A環(huán)信SDK的基礎(chǔ)架構(gòu)體系課件主要內(nèi)容IMSDK基本要素IMSDK架構(gòu)開發(fā)IMSDK的挑戰(zhàn)與應(yīng)對(duì)主要內(nèi)容IMSDK基本要素IMSDK的基本要素連接管理消息會(huì)話好友管理通知實(shí)時(shí)音視頻擴(kuò)展IMSDK的基本要素連接管理長(zhǎng)連接與短連接SDKIM

ServerHTTP

Server心跳消息消息上傳長(zhǎng)連接與短連接SDKIMServerHTTPServer長(zhǎng)連接TCP連接及時(shí)收到服務(wù)器的推送占用服務(wù)器大量資源長(zhǎng)連接TCP連接短連接HTTP連接前端發(fā)起HTTP請(qǐng)求,通常情況下每次請(qǐng)求都會(huì)創(chuàng)建個(gè)新連接(設(shè)置keep-alive除外),每次返回?cái)?shù)據(jù)后server就會(huì)關(guān)閉連接服務(wù)器不會(huì)特殊管理連接,減輕服務(wù)器負(fù)擔(dān)短連接HTTP連接心跳?;疃〞r(shí)通知服務(wù)器連接存在服務(wù)器設(shè)定TCP

keep-alive

time過期沒有收到數(shù)據(jù)啟動(dòng)探針多次探測(cè)沒有收到前端響應(yīng),關(guān)掉相應(yīng)連接即時(shí)刷新路由器NAT(

NetworkAddressTranslation)內(nèi)外網(wǎng)IP映射表只保存最新連接老連接會(huì)被移除心跳?;疃〞r(shí)通知服務(wù)器連接存在連接DNS配置防止DNS劫持獲取DNS配置列表不同的APP會(huì)對(duì)應(yīng)不同的Server

IP連接DNS配置防止DNS劫持重連重連原因主動(dòng)斷網(wǎng),切網(wǎng)服務(wù)器主動(dòng)斷開連接(connection

reset

by

peer)路由器外網(wǎng)斷開永遠(yuǎn)重連New

thread.start

->wait(random(time))

while(true

and

not

coneccted){

reconnect()

wait(random(time))}始終保持同一個(gè)連接實(shí)例避免自踢重連重連原因消息消息IDGlobal

Unique

ID消息類型收發(fā)方IDTo,

FromBind

ResourceMobilePC消息bodyIDfromtobodyBindtype消息消息IDIDfromtobodyBindtype<messageid=“0123456789”To=uni3From=un8/mobiletype="chat"><body>{"from":"uni8","to":"uni3","bodies":[{"type":"txt","msg":"測(cè)試"}],"ext":{}}</body></message><messageid=“0123456789”支持多種聊天模型單聊群組模型聊天室模型支持多種消息類型Text,Image,VideoFile透?jìng)飨⒅С謹(jǐn)U展消息支持多種聊天模型消息發(fā)送與回執(zhí)消息發(fā)送與回執(zhí)離線消息離線消息對(duì)方不在線,沒有相應(yīng)的session服務(wù)器沒有收到收方的回執(zhí)消息體內(nèi)含離線標(biāo)識(shí)獲取方式服務(wù)器推大量離線導(dǎo)致效率低下送(push)試想如果推送2000條離線?客戶端拉取(pull)根據(jù)消息ID獲取逐頁(yè)去獲取離線消息離線消息附件消息圖片,語(yǔ)音,視頻,文件,等類型的消息統(tǒng)一為附件消息如何發(fā)送方案一直接走長(zhǎng)連接方案二先上傳附件到服務(wù)器獲取附件UID再把載有UID的IM消息IM

Server收方讀取消息,根據(jù)UID下載附件到本地大小限制附件消息圖片,語(yǔ)音,視頻,文件,等類型的消息統(tǒng)一為附件消息附件消息附件消息會(huì)話管理消息管理消息查詢,刪除,插入批量消息加載批量消息導(dǎo)入消息發(fā)送已讀標(biāo)記會(huì)話管理消息管理好友管理添加好友刪除好友黑名單管理群組管理好友管理添加好友添加好友添加好友通知事件通知新消息,已讀,已送達(dá)通知API回調(diào)加減聯(lián)系人,群組,聊天室相關(guān)通知SDK只負(fù)責(zé)消息通知SDK不負(fù)責(zé)鈴聲,震動(dòng),提醒等定制化模塊通知事件通知實(shí)時(shí)音視頻支持實(shí)時(shí)音視頻使用Jingle

XMPP擴(kuò)展協(xié)議作為控制信令使用ICE作為P2P打洞協(xié)議支持媒體relay中繼功能多人語(yǔ)音功能內(nèi)部測(cè)試中實(shí)時(shí)音視頻支持實(shí)時(shí)音視頻支持?jǐn)U展消息的擴(kuò)展通過擴(kuò)展屬性會(huì)話的擴(kuò)展通過擴(kuò)展字段其他擴(kuò)展,如安全性通過插件擴(kuò)展支持?jǐn)U展消息的擴(kuò)展總體設(shè)計(jì)總體設(shè)計(jì)模塊的劃分平臺(tái)層會(huì)根據(jù)各平臺(tái)的不同,實(shí)現(xiàn)不同的接口,開放符合平臺(tái)層的API給第三方開發(fā)者。

適配層主要要適配到ONESDK核心層所需要的一些接口,起到承上啟下的作用。

核心層主要提供IM功能和業(yè)務(wù)邏輯,保證最大化的代碼重用模塊的劃分平臺(tái)層會(huì)根據(jù)各平臺(tái)的不同,實(shí)現(xiàn)不同的接口,開放符合AppvsSDK共同點(diǎn):易用性,穩(wěn)定性,可擴(kuò)展等用戶vs開發(fā)者單一平臺(tái)vs多平臺(tái)功能多vs接口少(RichfeaturesvsLessAPIs)可裁剪性對(duì)待錯(cuò)誤的使用:忽略vs提示測(cè)試出發(fā)點(diǎn):模擬用戶vs模擬程序員?安全性NotasgeneralsinglefunctionSDKsuchasvoicerecognition,map,etcAppvsSDK共同點(diǎn):易用性,穩(wěn)定性,可擴(kuò)展等LessAPIFa?adePatternPrivateclassdataLessAPIFa?adePattern裁剪性用戶需求不同,可以選擇配置不同的功能基礎(chǔ)功能+

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論