关于云开发新服务“实时数据推送”,你需要了解的全在这了!
“微信小程序工程師鄧坤力帶你了解如何利用千呼萬喚始出來的云開發(fā)實時數據推送服務打造生動的小程序和小游戲!”
在數據庫在小程序·云開發(fā)中的應用一文中,我們了解到實時數據推送作為云開發(fā)即將上線的一項新能力,主要指客戶端使用官方SDK發(fā)起socket連接建立對一個集合的監(jiān)聽,目標集合中如果有符合過濾條件的數據發(fā)生變更,將會直接推送到建立監(jiān)聽的客戶端。
簡單來說,使用實時數據推送可以更有效率的拉取數據,幫你把你的應用變成實時有狀態(tài),場景會非常有用,比如可以用來做彈幕,做實時排名更新,做實時刷新,或者實時推送一些通知給到用戶。
那么,實時數據推送具體是如何為小程序與小游戲賦能,提升開發(fā)效率的?讓我們跟隨微信小程序工程師鄧坤力一起,深入了解這項新服務誕生的來龍去脈。
為什么要做實時數據推送?
介紹實時數據推送服務之前,弄懂一個直擊靈魂問題將有助于我們的理解,那就是“為什么要做實時數據推送?”
想要更回答這個問題,需要從即時通信服務說起。
我們都知道建立一個簡單、常規(guī)的即時通信服務需要長連作為實現(xiàn)實時性的基礎,需要足夠的存儲來保證消息與文件的持久化,還需要實時推送功能來實現(xiàn)主動同步客戶端的能力。在此過程中,開發(fā)者往往需要面臨:
(1)需從零自建完整服務,無法聚焦在原型和核心業(yè)務開發(fā)上。
(2)開發(fā)成本高。由于前后端邏輯復雜,開發(fā)者往往需要經歷設計基礎設施搭建,長連管理、數據庫開發(fā)、安全管理等瑣碎繁雜的步驟。
(3)維護成本高。開發(fā)者還需負責維護,完成基礎設施管理、異常處理等。
(4)微信能力集成。自建服務器的開發(fā)者如要基于微信用戶登錄態(tài)進行操作并讓小程序安全運行,就不可避免地需要接入微信鑒權體系,整合accesstoken和 sessionkey流程并保證其安全性。
看到這里,可能有很多讀者已經想到了具有開箱即用、集成原生微信能力、自帶云數據庫、云函數、云存儲的云開發(fā),那么云開發(fā)的這些優(yōu)勢能否有效解決開發(fā)者在建立即時通信服務中常常會遇到的難題呢?
答案是不完全能,由于云開發(fā)不支持長連,并且不具備主動同步客戶端的能力,因此只能通過短輪詢以次級長連和推送的次級替代方案,在即時通訊服務構建時往往需要面臨短輪詢帶來的資源浪費、成本與體驗難平衡以及實時性差等問題。
可能又有小伙伴要問了,讓云開發(fā)支持長連不就可以彌補這些缺陷?答案也是否定的,因為若云開發(fā)支持長連,整個即時通訊服務的實現(xiàn)仍避免不了對長連的開發(fā)和管理,并且需要接受和處理消息,導致流程仍較為復雜,而這恰恰有悖于云開發(fā)作為高效率、輕量級解決方案的理念。
由此,云開發(fā)的實時推送服務應運而生,它將即時通訊服務所需的能力與云開發(fā)獨有的優(yōu)勢串聯(lián)起來,讓開發(fā)者可以更便捷地使用并快速實現(xiàn)需求。
實時數據推送有哪些能力?
能力概述
實時數據推送是云開發(fā)數據庫新增的服務,通過這項服務,小程序端可實時監(jiān)聽數據庫變更,即它支持根據開發(fā)者給定的查詢語句進行監(jiān)聽,每當查詢語句的結果發(fā)生變化時,小程序端就會收到包含更新內容的推送,并對實時數據變化做出響應。
總體來說,使用云開發(fā)的實時數據推送能力相比起自建服務可以享受以下便利,從而使其更專注于業(yè)務邏輯的設計:
- 原生能力,開箱即用
- 無需管理長連
- 無需編寫服務端代碼
無需搭建和管理基礎設施
自動收到更新推送
豐富的應用場景
實時數據推送的應用場景十分豐富。
在即時通信方面,實時數據推送支持小程序直播聊天室、彈幕等以及小游戲的區(qū)服聊天、房間聊天、私信等功能的實現(xiàn)。
在狀態(tài)同步方面,小程序可以使用實時數據推送來保持應用最新狀態(tài)的同步,以信息流為例,可以支持實時提示有新的文章、評論、點贊,從而達到更好的用戶體驗;對小游戲來說,可以支持使用狀態(tài)同步的模型開發(fā)的小游戲,比如棋牌類小游戲。
而在實時協(xié)作方面,實時數據推送可以為在線共享文檔、項目管理協(xié)作工具等提供支持。
簡單易用的API
實時數據推送提供簡潔易用的API,調用方便,并且可以完整描述整個維度的數據變化,以便開發(fā)者對具體業(yè)務邏輯做出響應。
自動處理異常
SDK在異常時會盡可能自動恢復狀態(tài),并且此恢復為開發(fā)者無感知,開發(fā)者僅需處理 SDK 無法自動恢復的錯誤。具體來說:
實時數據推送在斷網、網絡切換、NAT 地址刷新等情況時均能自動檢測異常和恢復連接,并且在更新事件推送失敗或丟失時有機制保障會成功拉取,而在更新事件亂序時有機制保障開發(fā)者收到的是順序事件。
云開發(fā)新能力矩陣
- 云調用:云函數免鑒權調用微信服務端開放接口,獲取微信開放數據,接收微信服務端消息推送。
- HTTP API:小程序外訪問云開發(fā)資源。
- 數據庫聚合:分組查詢、統(tǒng)計查詢、流水線批處理。
- 控制臺數據庫高級查詢:控制臺中批量數據庫增刪查改。
- 云開發(fā)Network面板:小程序Network面板支持展示云開發(fā)請求。
- 實時數據推送
如果你有關于使用云開發(fā)CloudBase相關的技術故事/技術實戰(zhàn)經驗想要跟大家分享,歡迎留言聯(lián)系我們哦~比心!
轉載于:https://www.cnblogs.com/CloudBase/p/11423112.html
總結
以上是生活随笔為你收集整理的关于云开发新服务“实时数据推送”,你需要了解的全在这了!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux系统编程练手项目,精选 22
- 下一篇: 如何用3D Max进行三维建模