珠海网站建设网珠海网站建设公司 - 品牌建站
只帮客户做赚钱的营销型企业网站,让企业主轻轻松松赚钱!

在中国,有 06815 家企业正在使用我们提供的各项服务!

微信《小程序·云》实时数据推送支持实时推送变更数据的能力

发布时间:2019/9/10阅读次数:7983来源:珠海网站建设网 [ 网讯互联 ][ 微信小程序 ] [ 我要投稿 ]

微信《小程序·云》实时数据推送支持实时推送变更数据的能力【珠海微信小程序定制开发电话:400-000-1280】为了进一步提高在即时通信、实时数据更新和推送等场景下的开发效率,小程序·云开发新增实时数据推送能力。开发者在小程序端给定查询条件后,每当查询结果发生变更时,小程序可收到一个更新事件,实时获取更新内容。实时数据推送可被广泛地应用于棋牌类等回合制小游戏、在线协作文档以及团队任务管理等场景。

微信《小程序·云》实时数据推送支持实时推送变更数据的能力

微信《小程序·云》实时数据推送支持实时推送变更数据的能力


介绍

云开发数据库支持实时推送变更数据的能力,给定查询条件,每当数据库更新而导致查询条件对应的查询结果发生变更时,小程序可收到一个更新事件,其中可获取更新内容和更新后的查询结果快照。

实时数据推送有广泛应用场景,此处是一些示例:

  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。

最佳实践

只监听必要的数据

监听时应明确查询条件,只监听必须用到的数据,避免监听不必要的数据,以此提高初次加载数据的性能以及接收数据变更的性能。



以上内容由珠海网站建设(网讯互联)为您提供!更多有关网站建设网站设计网站制作微信营销微官网手机网站建设营销型网站建设微信小程序等互联网应用服务都可以联系我们!建站热线:400-000-1280

您想咨询企业网站建设流程和报价吗?
您是否有考虑过打造赚钱营销型企业网站
移动互联网+都这么热门了,您还没有4G手机网站吗?
您想要让您的产品和服务出现在搜索引擎首页吗?
您想获得企业网站整体运营推广解决方案吗?
不说了~ 拿起手机扫码沟通,您懂得! ^_^
珠海网站建设公司微信二维码
嘚啵嘚啵一句:加微信时请告知尊姓大名
本文关键词:小程序云,微信小程序云,小程序实时数据推送
本文链接:http://www.zhgov.com/webnews/683.html
热门标签
      珠海网站建设网,微信小程序/企业网站建设综合服务平台
  • 您只需要告诉我们需要什么样的产品,网讯互联团队将为您打造一站式互联网综合应用平台!
立即咨询在线客服

网站建设

为什么要选择网讯互联

工商实名验证
证照齐全 正规公司 诚信经营
公平交易 满意后付款
价格公开透明 倡导理性消费
无风险,免费ICP备案
开具正规发票 免费网站备案
无风险,全额退款
没有有效稿件 承诺全额退款
      网讯互联企业邮箱
  • 请将#换成@
web#zhgov.com
首页 | 关于我们 | 新闻中心 | 支付方式 | 我要加盟 | 我要爆料 | 我要合作 | 我要做网站 | 我要备案 | 网站地图 | 友情链接 | 在线客服 | 联系方式
Copyright © 2007-2023 珠海市网讯互联信息科技有限公司 [ 珠海网站建设网 ] www.zhgov.com , All Rights Reserved. TAGS 新闻地图
粤ICP备19117377号 联系地址:广东省珠海市香洲区香海路129号 业务邮箱:[ 马上写信咨询 ] 业务QQ:79535318
工商注册号粤公网安备 44040202000391号 众信验证 百度信誉V官网认证 安全联盟实名验证
在线客服