資源描述:
《微信小程序云端解決方案》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、騰訊云微信小程序云端解決方案探索之路騰訊云探索之路小程序特性思考挑戰(zhàn)與嘗試整合前端工程師如何理解小程序?小程序是H5應用嗎?不是小程序不是H5應用?無法使用DOM接口?HTML5生態(tài)中基于DOM的庫全部無法使用(如jQuery)?并非URL訪問,沒有域名概念?不存在跨域問題?無Cookie存儲?小程序更偏向CS架構(gòu)小程序和傳統(tǒng)CS架構(gòu)的區(qū)別在哪兒?網(wǎng)絡和續(xù)航?網(wǎng)絡環(huán)境復雜?過于消耗資源會導致續(xù)航下降?小程序?qū)W(wǎng)絡優(yōu)化和資源優(yōu)化提出要求伸縮能力?傳播和社交特性可能會帶來業(yè)務的突然增長?小程序?qū)笈_架構(gòu)的伸縮能力有
2、高要求我們進行的嘗試上傳下載場景會話管理服務WebSocket服務視頻點播場景挑戰(zhàn)在哪兒會話服務WebSocket服務會話管理的挑戰(zhàn)?小程序不支持Cookie傳輸,需要自己實現(xiàn)會話服務會話管理目標?完成微信要求的鑒權(quán)流程,生成用戶會話?利用會話確定每個請求對應哪個微信用戶?安全性和擴展性要求會話建立過程會話管理客戶端SDK會話管理服務器SDK小程序1.請求登錄業(yè)務服務器2.換取會話微信服務器(code,rawData,signature)(code,appid,appsecret)6.返回會話3.返回會話(se
3、ssion_id)(session_key)5.建立并保存會話4.驗證簽名Redis會話服務效果分析?以NodeSDK的形式完成了功能性目標?其它后端語言不通用?小程序appId和appSecret安全性問題?缺少橫向擴展能力會話服務改進?獨立會話管理服務器?提供多語言SDK?appId和appSecret存放到數(shù)據(jù)庫改進的會話建立流程小程序業(yè)務服務器會話服務器微信服務器wx.login()獲取codewx.getUserInfo()獲取(encryptedData,iv)請求登錄請求登錄jscode2sess
4、ion(code,encryptedData,iv)(code,encryptedData,iv)(code,appId,appSecret)(session_key,openId)通過(session_key,openId)生成(id,skey)通過(session_key,iv)解密encryptedData得到userInfo(id,skey)(id,skey,userInfo)保存會話(id,skey)改進的會話檢查流程小程序業(yè)務服務器會話服務器getStorage()獲取(id,skey)wx.req
5、uest()檢查會話進行業(yè)務請求(id,skey)(id,skey)檢查會話合法性alt查詢userInfo會話合法(userInfo)業(yè)務處理會話非法錯誤信息錯誤信息會話服務改進分析?流程和安全性完全符合微信鑒權(quán)要求?獨立會話服務器的優(yōu)勢?方便單獨升級、擴展?業(yè)務服務器SDK開發(fā)成本低,方便支持多語言WebSocket的挑戰(zhàn)?小程序為何要支持WebSocket?通信方式對比傳統(tǒng)連接WebSocket?建立連接耗時長?僅需要建立一個連接?需要建立多個連接?雙向?qū)崟r通信?長連接方案只能串行傳輸?省電體驗好?耗電體
6、驗差一張圖解釋WebSocketHTTPonTCPSwitchProtocolWSonTCPWebSocket的嘗試?使用Socket.IO實現(xiàn)后端?Socket.IO客戶端在小程序上無法運行?學習Socket.IO協(xié)議后實現(xiàn)了一個簡版的客戶端?實現(xiàn)剪刀石頭布游戲邏輯WebSocket效果分析?驗證了WebSocket的可用性?閹割版的Socket.IO客戶端不可控?后端實現(xiàn)門檻高,且不好橫向擴展WebSocket方案改進?使用PaaS服務支持WebSocket連接WebSocket方案改進TCP小程序業(yè)務服務
7、器HTTP(S)小程序業(yè)務服務器TCPHTTP(S)信道服務使用PaaS服務建立WS連接小程序業(yè)務服務器1.請求WebSocket連接4.返回連接地址(connectUrl)2.申請連接地址(receiverUrl)3.返回連接地址(connectUrl)5.建立WebSocket連接6.通知連接已建立信道服務使用PaaS服務進行WS通信小程序業(yè)務服務器d.推送到客戶端c.推送消息a.發(fā)送消息b.推送到業(yè)務服務器信道服務PaaS信道服務的優(yōu)勢和局限?優(yōu)勢?平臺提供擴展能力?業(yè)務服務器無需支持WebSocket協(xié)
8、議?減輕服務器連接資源?穩(wěn)定性和性能保障?局限?業(yè)務服務器和信道服務器間公網(wǎng)通信延遲?調(diào)試便利性不如傳統(tǒng)連接方式信道服務如何支持會話?服務與模塊關(guān)系服務/模塊客戶端業(yè)務服務器會話服務器響應客戶端;響應業(yè)務服務器請求;會話服務和業(yè)務服務器通信與會話服務器通信與微信服務器通信向業(yè)務服務器申請響應客戶端;連接;信道服務與PaaS服務申請連-與PaaS服務建立接并通信;連接并通信;整合客戶端整