野狗與web實(shí)時(shí)化-聊聊架構(gòu)與思想_第1頁(yè)
野狗與web實(shí)時(shí)化-聊聊架構(gòu)與思想_第2頁(yè)
野狗與web實(shí)時(shí)化-聊聊架構(gòu)與思想_第3頁(yè)
野狗與web實(shí)時(shí)化-聊聊架構(gòu)與思想_第4頁(yè)
野狗與web實(shí)時(shí)化-聊聊架構(gòu)與思想_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

野狗與web實(shí)時(shí)化--聊聊架構(gòu)與思想架構(gòu):前端VS后端通信管道:WebSocketVSHTTP

接口設(shè)計(jì):面向資源VS面向活動(dòng)同步:CAP的取舍交互:樂(lè)觀策略與悲觀策略集成:野狗與MV*框架的集成認(rèn)證與授權(quán)summary架構(gòu):前端vs后端簡(jiǎn)單視圖邏輯視圖數(shù)據(jù)庫(kù)邏輯數(shù)據(jù)服務(wù)前端邏輯視圖數(shù)據(jù)庫(kù)后端邏輯數(shù)據(jù)服務(wù)渲染路由渲染路由(SPA)文檔請(qǐng)求減少資源的請(qǐng)求減少數(shù)據(jù)與靜態(tài)資源分離有利于cdn緩存客戶端渲染分擔(dān)服務(wù)端壓力客戶端有狀態(tài),減少交互等待客戶端有狀態(tài),容易實(shí)現(xiàn)復(fù)雜交互。。。

優(yōu)勢(shì)前端框架的繁榮后端modelview前端前后端數(shù)據(jù)流后端modelview前端非常多前端框架已經(jīng)幫你搞定了這部分Model與view之間是數(shù)據(jù)綁定的對(duì)于這部分我們思考的并不夠沒(méi)有提升空間嗎?能否用類似數(shù)據(jù)綁定的思想做網(wǎng)絡(luò)交互?HTTP的劣勢(shì): 1)單向連接,服務(wù)端無(wú)法主動(dòng)推送 2)無(wú)狀態(tài)導(dǎo)致?tīng)顟B(tài)要重復(fù)傳輸 3)文本協(xié)議,頭巨大,有效載荷小以上HTTP的劣勢(shì)正是WebSocket的優(yōu)勢(shì)

通信管道:HTTPvsWebsocketWebsocketWebsocketframeWebsocket與polling性能對(duì)比:1000/10000/100000客戶端每秒接收一條消息產(chǎn)生的網(wǎng)絡(luò)開(kāi)銷WebSocket更適合數(shù)據(jù)交互Http更適合資源下載結(jié)論接口設(shè)計(jì):面向資源vs面向活動(dòng)客戶端資源GETPOSTPUTDELETE客戶端資源添加一個(gè)用戶刪除一條評(píng)論按照時(shí)間查找增加一個(gè)主題Post一張照片。。。面向資源無(wú)需定義接口,只需定義資源路徑和讀寫(xiě)權(quán)限適用多數(shù)場(chǎng)景,活動(dòng)也可以使用資源的方式來(lái)描述面向資源與同步客戶端資源副本資源同步客戶端onpushsetdelete客戶端不直接操作資源,而是操作客戶端資源副本客戶端可以通過(guò)數(shù)據(jù)事件獲得最新的數(shù)據(jù)CAP:野狗是AP系統(tǒng)分區(qū)容忍:客戶端離線可用性:任何時(shí)候都可以操作客戶端副本對(duì)可用性的追求-離線可用一致性不可以放棄“A”“A”“B”pending:A->B“A”不一致產(chǎn)生“B”“B”connecteddisconnectedreconnected將寫(xiě)操作同步到服務(wù)端(資源)最終一致一致考慮場(chǎng)景:樂(lè)觀策略與悲觀策略樂(lè)觀策略與悲觀策略-正常用戶邏輯客戶端服務(wù)端ref.push推送success更新副本success事件child_added悲觀策略:默認(rèn)操作會(huì)不成功,直到收到服務(wù)端success的通知才給用戶發(fā)送數(shù)據(jù)變化的通知用戶邏輯客戶端服務(wù)端ref.push推送success更新副本success事件child_added悲觀策略:默認(rèn)操作會(huì)成功,直接給應(yīng)用發(fā)送數(shù)據(jù)改變的事件。問(wèn)題:如果操作不成功怎么辦?樂(lè)觀策略與悲觀策略-失敗用戶邏輯客戶端服務(wù)端ref.push推送失敗err悲觀策略:直接把錯(cuò)誤結(jié)果給用戶邏輯就好用戶邏輯客戶端服務(wù)端ref.push推送fail更新副本err事件child_added悲觀策略:要為樂(lè)觀付出代價(jià),本地副本需要回滾,而且需要通知用戶邏輯回滾回滾副本事件child_removed完整代碼數(shù)據(jù)同步與MV*的結(jié)合資源客戶端資源副本mv*框架內(nèi)的model視圖服務(wù)端客戶端數(shù)據(jù)同步Child_addedChild_removeChild_movedChild_changed用戶操作舉個(gè)栗子-微信小程序認(rèn)證:讓服務(wù)端知道我是誰(shuí)JSON-WEB-TOKEN(JWT)授權(quán):根據(jù)用戶信息和資源信息判斷讀寫(xiě)權(quán)限認(rèn)證與授權(quán)官網(wǎng): https://

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論