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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

主要內(nèi)容IMSDK基本要素IMSDK架構開發(fā)IMSDK的挑戰(zhàn)與應對主要內(nèi)容IMSDK基本要素IMSDK的基本要素連接管理消息會話好友管理通知實時音視頻擴展IMSDK的基本要素連接管理長連接與短連接SDKIM

ServerHTTP

Server心跳消息消息上傳長連接與短連接SDKIMServerHTTPServer長連接TCP連接及時收到服務器的推送占用服務器大量資源長連接TCP連接短連接HTTP連接前端發(fā)起HTTP請求,通常情況下每次請求都會創(chuàng)建個新連接(設置keep-alive除外),每次返回數(shù)據(jù)后server就會關閉連接服務器不會特殊管理連接,減輕服務器負擔短連接HTTP連接心跳保活定時通知服務器連接存在服務器設定TCP

keep-alive

time過期沒有收到數(shù)據(jù)啟動探針多次探測沒有收到前端響應,關掉相應連接即時刷新路由器NAT(

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

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

reset

by

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

thread.start

->wait(random(time))

while(true

and

not

coneccted){

reconnect()

wait(random(time))}始終保持同一個連接實例避免自踢重連重連原因消息消息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":"測試"}],"ext":{}}</body></message><messageid=“0123456789”支持多種聊天模型單聊群組模型聊天室模型支持多種消息類型Text,Image,VideoFile透傳消息支持擴展消息支持多種聊天模型消息發(fā)送與回執(zhí)消息發(fā)送與回執(zhí)離線消息離線消息對方不在線,沒有相應的session服務器沒有收到收方的回執(zhí)消息體內(nèi)含離線標識獲取方式服務器推大量離線導致效率低下送(push)試想如果推送2000條離線?客戶端拉取(pull)根據(jù)消息ID獲取逐頁去獲取離線消息離線消息附件消息圖片,語音,視頻,文件,等類型的消息統(tǒng)一為附件消息如何發(fā)送方案一直接走長連接方案二先上傳附件到服務器獲取附件UID再把載有UID的IM消息IM

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

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

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

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

Unit

TestAPI

TestDeveloper’s

taskCode

will

be

rejected

without

unit

test集成測試-

Integration

Test性能測試穩(wěn)定性測試手動測試-

Manual

Test功能性測試用戶體驗測試測試單元測試-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的基礎架構體系課件主要內(nèi)容IMSDK基本要素IMSDK架構開發(fā)IMSDK的挑戰(zhàn)與應對主要內(nèi)容IMSDK基本要素IMSDK的基本要素連接管理消息會話好友管理通知實時音視頻擴展IMSDK的基本要素連接管理長連接與短連接SDKIM

ServerHTTP

Server心跳消息消息上傳長連接與短連接SDKIMServerHTTPServer長連接TCP連接及時收到服務器的推送占用服務器大量資源長連接TCP連接短連接HTTP連接前端發(fā)起HTTP請求,通常情況下每次請求都會創(chuàng)建個新連接(設置keep-alive除外),每次返回數(shù)據(jù)后server就會關閉連接服務器不會特殊管理連接,減輕服務器負擔短連接HTTP連接心跳保活定時通知服務器連接存在服務器設定TCP

keep-alive

time過期沒有收到數(shù)據(jù)啟動探針多次探測沒有收到前端響應,關掉相應連接即時刷新路由器NAT(

NetworkAddressTranslation)內(nèi)外網(wǎng)IP映射表只保存最新連接老連接會被移除心跳保活定時通知服務器連接存在連接DNS配置防止DNS劫持獲取DNS配置列表不同的APP會對應不同的Server

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

reset

by

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

thread.start

->wait(random(time))

while(true

and

not

coneccted){

reconnect()

wait(random(time))}始終保持同一個連接實例避免自踢重連重連原因消息消息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":"測試"}],"ext":{}}</body></message><messageid=“0123456789”支持多種聊天模型單聊群組模型聊天室模型支持多種消息類型Text,Image,VideoFile透傳消息支持擴展消息支持多種聊天模型消息發(fā)送與回執(zhí)消息發(fā)送與回執(zhí)離線消息離線消息對方不在線,沒有相應的session服務器沒有收到收方的回執(zhí)消息體內(nèi)含離線標識獲取方式服務器推大量離線導致效率低下送(push)試想如果推送2000條離線?客戶端拉取(pull)根據(jù)消息ID獲取逐頁去獲取離線消息離線消息附件消息圖片,語音,視頻,文件,等類型的消息統(tǒng)一為附件消息如何發(fā)送方案一直接走長連接方案二先上傳附件到服務器獲取附件UID再把載有UID的IM消息IM

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

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

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

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

溫馨提示

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

最新文檔

評論

0/150

提交評論