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

資訊動態

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

日期: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號 網站地圖 站點地圖
在線客服
主站蜘蛛池模板: 奇米影视777在线播放 | 一区二区伦理 | 国产成人亚洲精品乱码在线观看 | 欧美一级永久免费毛片在线 | 深夜福利影院 | 一个色亚洲 | 日韩成人高清 | 亚洲综合在线视频 | 久久久久激情免费观看 | 欧美aaaa黄色一级毛片 | 午夜爱爱网 | 亚洲国产精品久久久久婷婷老年 | 日韩欧美国产中文 | 一级aaa级毛片午夜在线播放 | 亚洲精品久久久久久婷婷 | 欧美日韩亚洲成人 | 日本中文字幕在线观看视频 | 床上毛片| 日本无翼乌全彩无遮挡动漫 | 久久久久久久99精品免费 | 亚洲视频999 | 亚洲精品国产成人专区 | 一级一毛片a级毛片欧美 | 在线视频一区二区日韩国产 | 日本免费高清一级毛片 | 亚洲一区二区三区免费 | 手机在线观看亚洲国产精品 | 日韩在线播放中文字幕 | 爱性网| 欧美一区二区三区综合色视频 | jizzjizzjizz中国 | 国产产一区二区三区久久毛片国语 | 99热在线免费观看 | 国产欧美日韩精品第二区 | 欧美午夜精品一区二区三区 | 91国视频在线| 久久这里只有精品国产 | 国产日韩一区二区三区在线播放 | 精品特级一级毛片免费观看 | 国产一区二区三区在线免费观看 | 五月天激情视频在线观看 |