“微信小程序工程师邓坤力带你了解如何利用千呼万唤始出来的云开发实时数据推送服务打造生动的小程序和小游戏!”

在数据库在小程序·云开发中的应用一文中,我们了解到实时数据推送作为云开发即将上线的一项新能力,主要指客户端使用官方SDK发起socket连接建立对一个集合的监听,目标集合中如果有符合过滤条件的数据发生变更,将会直接推送到建立监听的客户端。

简单来说,使用实时数据推送可以更有效率的拉取数据,帮你把你的应用变成实时有状态,场景会非常有用,比如可以用来做弹幕,做实时排名更新,做实时刷新,或者实时推送一些通知给到用户。

那么,实时数据推送具体是如何为小程序与小游戏赋能,提升开发效率的?让我们跟随微信小程序工程师邓坤力一起,深入了解这项新服务诞生的来龙去脉。

为什么要做实时数据推送?

介绍实时数据推送服务之前,弄懂一个直击灵魂问题将有助于我们的理解,那就是“为什么要做实时数据推送?”

想要更回答这个问题,需要从即时通信服务说起。

我们都知道建立一个简单、常规的即时通信服务需要长连作为实现实时性的基础,需要足够的存储来保证消息与文件的持久化,还需要实时推送功能来实现主动同步客户端的能力。在此过程中,开发者往往需要面临:

(1)需从零自建完整服务,无法聚焦在原型和核心业务开发上。

(2)开发成本高。由于前后端逻辑复杂,开发者往往需要经历设计基础设施搭建,长连管理、数据库开发、安全管理等琐碎繁杂的步骤。

(3)维护成本高。开发者还需负责维护,完成基础设施管理、异常处理等。

(4)微信能力集成。自建服务器的开发者如要基于微信用户登录态进行操作并让小程序安全运行,就不可避免地需要接入微信鉴权体系,整合accesstoken和 sessionkey流程并保证其安全性。

看到这里,可能有很多读者已经想到了具有开箱即用、集成原生微信能力、自带云数据库、云函数、云存储的云开发,那么云开发的这些优势能否有效解决开发者在建立即时通信服务中常常会遇到的难题呢?

答案是不完全能,由于云开发不支持长连,并且不具备主动同步客户端的能力,因此只能通过短轮询以次级长连和推送的次级替代方案,在即时通讯服务构建时往往需要面临短轮询带来的资源浪费、成本与体验难平衡以及实时性差等问题。

可能又有小伙伴要问了,让云开发支持长连不就可以弥补这些缺陷?答案也是否定的,因为若云开发支持长连,整个即时通讯服务的实现仍避免不了对长连的开发和管理,并且需要接受和处理消息,导致流程仍较为复杂,而这恰恰有悖于云开发作为高效率、轻量级解决方案的理念。

由此,云开发的实时推送服务应运而生,它将即时通讯服务所需的能力与云开发独有的优势串联起来,让开发者可以更便捷地使用并快速实现需求。

实时数据推送有哪些能力?

能力概述

实时数据推送是云开发数据库新增的服务,通过这项服务,小程序端可实时监听数据库变更,即它支持根据开发者给定的查询语句进行监听,每当查询语句的结果发生变化时,小程序端就会收到包含更新内容的推送,并对实时数据变化做出响应。

总体来说,使用云开发的实时数据推送能力相比起自建服务可以享受以下便利,从而使其更专注于业务逻辑的设计:

  • 原生能力,开箱即用
  • 无需管理长连
  • 无需编写服务端代码
  • 无需搭建和管理基础设施

  • 自动收到更新推送

丰富的应用场景

实时数据推送的应用场景十分丰富。

在即时通信方面,实时数据推送支持小程序直播聊天室、弹幕等以及小游戏的区服聊天、房间聊天、私信等功能的实现。

在状态同步方面,小程序可以使用实时数据推送来保持应用最新状态的同步,以信息流为例,可以支持实时提示有新的文章、评论、点赞,从而达到更好的用户体验;对小游戏来说,可以支持使用状态同步的模型开发的小游戏,比如棋牌类小游戏。

而在实时协作方面,实时数据推送可以为在线共享文档、项目管理协作工具等提供支持。

简单易用的API

实时数据推送提供简洁易用的API,调用方便,并且可以完整描述整个维度的数据变化,以便开发者对具体业务逻辑做出响应。

自动处理异常

SDK在异常时会尽可能自动恢复状态,并且此恢复为开发者无感知,开发者仅需处理 SDK 无法自动恢复的错误。具体来说:

实时数据推送在断网、网络切换、NAT 地址刷新等情况时均能自动检测异常和恢复连接,并且在更新事件推送失败或丢失时有机制保障会成功拉取,而在更新事件乱序时有机制保障开发者收到的是顺序事件。

云开发新能力矩阵

  • 云调用:云函数免鉴权调用微信服务端开放接口,获取微信开放数据,接收微信服务端消息推送。
  • HTTP API:小程序外访问云开发资源。
  • 数据库聚合:分组查询、统计查询、流水线批处理。
  • 控制台数据库高级查询:控制台中批量数据库增删查改。
  • 云开发Network面板:小程序Network面板支持展示云开发请求。
  • 实时数据推送

如果你有关于使用云开发CloudBase相关的技术故事/技术实战经验想要跟大家分享,欢迎留言联系我们哦~比心!

转载于:https://www.cnblogs.com/CloudBase/p/11423112.html

关于云开发新服务“实时数据推送”,你需要了解的全在这了!相关推荐

  1. C# ASP.NET MVC 之 SignalR 学习 实时数据推送显示 配合 Echarts 推送实时图表

    本文主要是我在刚开始学习 SignalR 的技术总结,网上找的学习方法和例子大多只是翻译了官方给的一个例子,并没有给出其他一些经典情况的示例,所以才有了本文总结,我在实现推送简单的数据后,就想到了如何 ...

  2. 微信小程序 - 云开发轮询实现定时推送订阅消息

    前言 受众:已有小程序和云开发经验(没有的话照着流程和官方文档也应该可以实现) 关于小程序的消息推送,我了解到的有以下几种实现方式 1.模板消息,已于2020 年 1 月 10 日下线 2.通过服务端 ...

  3. iOS和Android即时通讯开发时后台实时消息推送的原理和区别

    iOS和Android上的实时消息推送差异很大,往小了说是技术实现的差异,往大了说是系统实现理念的不同.实时消息推送在移动端互联网时代很平常,也很重要,它的存在让智能终端真正成为全时信息传播的工具.本 ...

  4. SSE:使用HTTP做服务端数据推送的技术及其他通信技术

    文章目录 一.SSE 使用场景 服务端响应示例 浏览器处理服务器返回数据 SSE使用注意事项 使用示例 二.轮询 三.WebSocket 什么是Socket?什么是WebSocket? 那么他是如何建 ...

  5. 借助实时数据推送快速制作在线对战五子棋小游戏丨实战

    1 项目概述 游戏开发,尤其是微信小游戏开发,是最近几年比较热门的话题. 本次「云开发」公开课,将通过实战「在线对战五子棋」,一步步带领大家,在不借助后端的情况下,利用「小程序 ✖ 云开发」,独立完成 ...

  6. php使用redis消息队列swoole,swoole+Redis实现实时数据推送

    /** * *************************************** *            单进程保护                 * * *************** ...

  7. 微信小程序云开发之订阅消息的推送

    订阅消息是小程序一个比较重要的功能,这也是与你客户打交道的必备功能.通过微信通知客户,从而为客户提供更好地服务. 要通过云函数来实现订阅消息,其实挺简单.也就那么回事儿~ 首先,你需要在小程序后台开通 ...

  8. python 实时数据推送_python scrapy 爬取金十数据并自动推送到微信

    一.背景 因业务需要获取风险经济事件并采取应对措施,但因为种种原因又疏忽于每天去查看财经日历,于是通过爬取金十数据网站并自动推送到微信查看. 二.目标实现 image 三.环境与工具 1.pychar ...

  9. 纳米数据,足球篮球实时数据比分,体育赛事比分接口代码,实时数据推送演示

    纳米数据采集了近 20 年内全世界的比赛实况,运用大数据人工智能技术,建立了一个囊括全世界超过三万支球队.三十五万多场比赛及百亿条数据的数据库,在此基础上建立了超过 100 个满足各个场景需求的深度数 ...

最新文章

  1. java optional 用法_Java8 中的 Optional 相关用法
  2. Android之linux之基础建设之窗口系统
  3. KVM虚拟机文件优化导出最小化体积的qcow2镜像文件
  4. 移动开发:android , IOS html5
  5. html5和前端精要(1)-架构与基础(1)
  6. 认识zookeeper
  7. 计算机存有多少游戏,8G和16G的计算机内存之间有很大区别吗?玩游戏需要多少内存?...
  8. Xamarin.Forms弹出对话框插件
  9. c语言本身有输入输出语句正确错误,C语言模拟选择题
  10. 添加公共引用目录_3分钟解决200页Word生成目录的问题,无需插件,领导看了直夸奖...
  11. 软考(2)——看图心想编译原理
  12. Java流程控制语句的基本概念
  13. 4-算法冒泡排序 插入排序
  14. 移动硬盘(U盘)病毒对数据的破坏
  15. ATTiny85 Arduino开发环境搭建及使用
  16. 小程序跳转至企业微信客服wx.openCustomerServiceChat
  17. One Day One Step 之 nothing
  18. C# .Net 小程序消息推送配置+详细代码
  19. excel表格多列数据中查找重复行数据
  20. Java兔子生兔子问题

热门文章

  1. Qt sqlit3的增、删、改、查、判断等基本操作接口
  2. scratch的积木相与java的_scratch课堂:积木块详解
  3. scratch跳一跳游戏脚本_cocos creator制作微信小游戏「跳一跳」
  4. P2896 [USACO08FEB]一起吃饭Eating Together 解题报告
  5. 2.mysql优化---增删改优化
  6. angular的性能分析 -随记
  7. redis 超时失效key 的监听触发
  8. ado.net操作数据库
  9. 软件工程个人作业01;
  10. lua的string.gsub初使用