更新记录
1.0.3(2020-09-15) 下载此版本
新增:speed 监听数据库数据的速度, 已缺省,默认为1000(单位:毫秒)建议该值大于等于1000。主要作用是缓解云端查询数据库的压力
1.0.2(2020-09-11) 下载此版本
1.0.2 修复已知问题
1.0.1(2020-09-11) 下载此版本
整理代码格式
查看更多平台兼容性
阿里云 | 腾讯云 | 支付宝云 |
---|---|---|
√ | √ | × |
云函数类插件通用教程
使用云函数类插件的前提是:使用HBuilderX 2.9+
- 诞生背景:为保障应用消息的及时性,需要使用push,但push仅兼容APP端,微信小程序和h5端没有push的概念。常见的方案是长连接websocket,而unicloud暂未提供;如果使用高频快速的轮训,会增加云函数的并发压力,如每秒钟发起一次http请求这是非常不建议的策略;因此本插件设计了一种“长轮训”
- 客户端每发起一次http请求,云端会在一个周期(cycle下面会解释)内监听数据库,
- 如果在周期内的任意时间,得到数据则立即返回数据给前端。
- 如果在一个周期完成后仍然请求不到数据,则返回空数组。
- 前端配合/common/loopLink.js 可以实现持续监听获得新数据,达到媲美websocket的效果。 优势:客户端以间隔较长的周期发起http请求,却能及时地(1秒)获取到最新数据
插件使用说明:
- 1.数据库设计demo 请直接执行 db_init.json
-
2.后端 loopLink的参数:
dbName 数据库名称 where 查询该数据库的条件,is-read:0已缺省可免填 cycle 周期 已缺省,默认为5 阿里云目前暂时不能超过8建议写5以保障稳定,过于复杂的业务逻辑请填写的小一点。今后阿里那边修复后可以写大一点,就像腾讯云建议直接写50秒 speed 监听数据库数据的速度, 已缺省,默认为1000(单位:毫秒)建议该值大于等于1000。主要作用是缓解云端查询数据库的压力
原因:云函数执行时间不能超过,unicloud后台控制面板设置但 函数列表-云函数-云函数管理-环境信息-超时时间 注意:阿里云目前不能超过8秒。具体原因:有待云厂商修复 腾讯云版unicloud最长可达60秒。但轮训消耗 云函数查询次数,成本角度建议使用阿里云版 腾讯云版unicloud 数据库 读操作数0.015(万次)
- 3.前端
-
发起长轮训
loopLink({name:"demo","data":{}});
name填写云函数名称示例是demo data是要发给云函数的数据如:token(集成uni-id的免传),where,业务 数据等
监听并获取最新数据
uni.$on('loopLink-demo',data=>{ //loopLink- 加上云函数名称
console.log(data);
})