日本黄色小视频在线观看-日本黄色性视频-日本黄色一级-日本黄色一级大片-日本黄色一级片视频-日本黄色一级视频

資訊動態

微信《小程序·云》實時數據推送支持實時推送變更數據的能力

日期:2019-09-10 作者:管理員 來源:互聯網

微信《小程序·云》實時數據推送支持實時推送變更數據的能力【珠海微信小程序定制開發電話】為了進一步提高在即時通信、實時數據更新和推送等場景下的開發效率,小程序·云開發新增實時數據推送能力。開發者在小程序端給定查詢條件后,每當查詢結果發生變更時,小程序可收到一個更新事件,實時獲取更新內容。實時數據推送可被廣泛地應用于棋牌類等回合制小游戲、在線協作文檔以及團隊任務管理等場景。

微信《小程序·云》實時數據推送支持實時推送變更數據的能力

微信《小程序·云》實時數據推送支持實時推送變更數據的能力


介紹

云開發數據庫支持實時推送變更數據的能力,給定查詢條件,每當數據庫更新而導致查詢條件對應的查詢結果發生變更時,小程序可收到一個更新事件,其中可獲取更新內容和更新后的查詢結果快照。

實時數據推送有廣泛應用場景,此處是一些示例:

  1. 聊天/即時通信:小游戲內聊天、大廳廣播、區服廣播等;企業內部小程序中的即時通信能力等

  2. 多人小游戲:使用狀態同步的小游戲,如棋牌類等回合制游戲

  3. 協作工具:如在線協作文檔、團隊任務管理等

  4. 實時應用狀態同步:以信息流為例,可以實時獲取最新文章、以及最新評論、點贊、通知等內容,讓交互更順暢自然

監聽

調用 Collection 上的 watch 方法即可監聽給定查詢條件對應的數據:

const db = wx.cloud.database() const watcher = db.collection('todos').where({ team: 'our dev team' }).watch({ onChange: function(snapshot) { console.log('docs\'s changed events', snapshot.docChanges) console.log('query result snapshot after the event', snapshot.docs) console.log('is init data', snapshot.type === 'init') }, onError: function(err) { console.error('the watch closed because of error', err) } }) // ... // 等到需要關閉監聽的時候調用 close() 方法 watcher.close()

onChange  onError 是必傳參數。onChange 用于接收變更快照,onError 用于處理監聽錯誤。如果監聽發起失敗或監聽過程中出現不可恢復的錯誤,則會終止監聽并通過 onError 拋出異常。onChange 會在第一次監聽初始化及后續數據變更時收到推送事件。第一次初始化時會收到的查詢條件對應的查詢結果(此處不會有默認 20 條上限,包含集合中所有滿足查詢條件的記錄),后續變更事件會包含變更內容和變更后的查詢結果快照。

onChange 收到的 snapshot 變更快照中帶有如下字段:

字段 類型 說明
docChanges ChangeEvent[] 更新事件數組
docs object[] 數據快照,表示此更新事件發生后查詢語句對應的查詢結果
type string 快照類型,僅在第一次初始化數據時有值為 init
id number 變更事件 id

ChangeEvent 記錄變更事件的內容包括:

字段 類型 說明
id number 更新事件 id
queueType string 列表更新類型,表示更新事件對監聽列表的影響,枚舉值,定義見 QueueType
dataType string 數據更新類型,表示記錄的具體更新類型,枚舉值,定義見 DataType
docId string 更新的記錄 id
doc object 更新的完整記錄
updatedFields object 所有更新的字段及字段更新后的值,key 為更新的字段路徑,value 為字段更新后的值,僅在 update 操作時有此信息
removedFields string[] 所有被刪除的字段,僅在 update 操作時有此信息

DataType 枚舉值

枚舉值 說明
init 初始化數據
update 記錄內容更新,對應 update 操作
replace 記錄內容被替換,對應 set 操作
add 記錄新增,對應 add 操作
remove 記錄被刪除,對應 remove 操作

QueueType 枚舉值

枚舉值 說明
init 初始化列表
update 列表中的記錄內容有更新,但列表包含的記錄不變
enqueue 記錄進入列表
dequeue 記錄離開列表

變更事件會細分記錄數據變更類型 dataType 和監聽列表變更類型 queueType,其可能的搭配和意義如下。

dataType queueType 說明
init init 監聽開始時的初始化數據
update update 記錄部分更新,更新后仍在查詢結果列表中
update enqueue 記錄部分更新,更新后進入查詢結果列表
update dequeue 記錄部分更新,更新后離開查詢結果列表
replace update 記錄被替換,更新后仍在查詢結果列表中
replace enqueue 記錄被替換,更新后進入查詢結果列表
replace dequeue 記錄被替換,更新后離開查詢結果列表
add enqueue 記錄是新增記錄,新增后進入查詢結果列表
remove dequeue 記錄被刪除,離開查詢結果列表

注意事項與系統限制

監聽返回的數據不受默認 20 條限制

監聽返回的數據可能超過 20 條,不受小程序端默認 20 條上限限制。

監聽暫只支持 where 語句

監聽暫僅支持 where 語句,不支持 orderBy、limit、field 等語句。

監聽記錄數限制

一次監聽的記錄數上限為 5000,若超出上限會拋錯并停止監聽。監聽過大量的數據時初始化會較慢,對監聽效率也有影響,如果預期監聽發起時少于 5000,但后續有可能超過 5000,請注意在即將超過時重新監聽并保證不超過 5000。

最佳實踐

只監聽必要的數據

監聽時應明確查詢條件,只監聽必須用到的數據,避免監聽不必要的數據,以此提高初次加載數據的性能以及接收數據變更的性能。

二維碼
掃二維碼手機查看該文章
當前網址:http://www.abfy.com.cn/wechat/663.html

相關資訊

?
Copyright ? 2007-2025 珠海市網訊互聯信息科技有限公司 www.abfy.com.cn 版權所有
粵公網安備44040202000391號 粵ICP備19117377號 網站地圖 站點地圖
在線客服
主站蜘蛛池模板: 久操精品在线 | 成人黄色一级片 | 狠狠地射| 天天干天天摸天天操 | 久久成人18免费网站 | 亚洲高清专区 | 国产精品久久久久久久久久妇女 | 中文字幕视频在线 | 天天做天天爱夜夜想毛片 | 九九线精品视频 | 亚洲精品一二区 | 欧洲一级 | 老子不卡| 亚洲永久精品ww47 | 色狠狠一区 | 日本高清免费不卡视频 | 欧美一二三区视频 | 精品福利在线观看 | 国产精品一区二区三区久久 | 欧美综合专区 | 欧美日韩高清一区二区三区 | 亚洲干综合 | 国产午夜精品久久久久九九 | 精品影视 | 婷婷涩 | 日本精品一区二区三本中文 | 影音先锋久草 | 欧美日韩视频一区二区 | 91在线激情在线观看 | 国内拍拍自拍视频在线观看 | 色片免费在线观看 | 欧美综合天天夜夜久久 | 男人的天堂欧美精品色偷偷 | 日本99视频 | 手机看片亚洲 | 国产亚洲精品美女久久久 | 日韩一区精品 | 国产精品视频免费在线观看 | 9久热这里只有精品视频在线观看 | 四虎精品视频在线永久免费观看 | 国产精品免费视频一区一 |