更新记录

1.0.3(2020-09-15)

新增:speed 监听数据库数据的速度, 已缺省,默认为1000(单位:毫秒)建议该值大于等于1000。主要作用是缓解云端查询数据库的压力

1.0.2(2020-09-11)

1.0.2 修复已知问题

查看更多

平台兼容性

阿里云 腾讯云

云函数类插件通用教程

使用云函数类插件的前提是:使用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);

})

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问