写点什么

开发者用作品告诉我们,RTM SDK 还可以这么用

  • 2020-11-18
  • 本文字数:2313 字

    阅读完需:约 8 分钟

开发者用作品告诉我们,RTM SDK 还可以这么用

每当大家听到声网,一般想到的都会是“实时音视频”。但事实上,声网所专注的实时互动(RTE)不仅仅是实时音视频,还有实时的消息、录制、内容审核、美颜 贴纸、人脸识别等很多功能。其中,实时消息,即实时的信令同步与控制,以及实时图文消息,就可以通过 Agora RTM SDK 实现。有一些声网社区的开发者已经意识到了这一点,基于 RTM SDK 做出了一些实用又有趣的项目。


用 RTM 做代码“共享”


在今年 RTE 编程挑战赛的参赛作品中,有一支团队不按常理出牌,他们没有基于 SDK 去做 App,而是开发了一个 VS Code 插件+Web 页面。



图:网页端的同步显示


这个项目叫做 CodeSync,其中的 VS Code 插件是给老师用的,Web 端则是给学生用的。插件可以让老师把自己在 VS Code 中的代码和操作都实时同步给观看 Web 页面的学生。学生则可以在 Web 端看代码的同时,通过页面中的聊天窗发文字提问。这个项目中的代码操作同步与消息聊天的功能,就是通过实时消息 RTM SDK 实现的。


项目开发者于卓浩和王嘉维的初衷是为了解决老师投影代码看不清,而且不利于提问、交流的问题。更重要的是,RTM SDK 能很好地在学校课堂的弱网环境下提供低延时的实时交互,同步共享代码与操作。RTM SDK 在 70%丢包的弱网下,也能保证消息 100%到达。


这个项目不仅最终在编程挑战赛中获了奖,也成了他们上课讲代码时,老师和全班同学都会用到的工具。



图:老师在上课时使用 CodeSync 讲代码,同学在 Web 端观


利用 RTM 实现 Demo 的实时交互演示


CodeSync 是“用程序员的方式解决程序员日常问题”。接下来的例子就是用来解决很多商业化产品遇到的问题——Demo 演示。


大家应该都有过类似经历,打开了一个新的 Web 应用,比如在线 P 图,有的网页会通过一些引导操作告诉你怎么来使用,有的是在页面显示指引,有的是图片、视频,有的还可能会是专门定制开发的程序。然而,页面中的指引需要开发来完成,视频 Demo 又不易于迭代。所以有一位声网的开发者就开发者这个叫“Storyteller”的编辑器。



用户不需要懂得编程。就像 Storytell 的名字一样,用户可以像编写故事一样在编辑器中一边演示操作,一边将它录制为教程,最终生成一个视频。在录制的同时,还可以邀请同事一起进行协同,给 Demo 演示添加更多备注、录制旁白等。其中旁白的录制是通过声网录制 SDK 实现的,协同的功能则是通过 RTM SDK 实现的。


实时消息的多种应用场景与痛点


这两个例子都是来自于声网社区开发者的创意,他们的作品都是从日常的痛点出发的。事实上,实时消息 RTM SDK 也已被集成到很多不同场景中了,比如:


语音聊天室、直播聊天室


在语音聊天室和直播聊天室中,可以通过 RTM SDK 来实现聊天互动(图文消息、礼物、点赞、表情、自定义消息等)、麦位控制、房间管理(房间进出通知、房间人数、房间用户名单)。相对来讲,直播聊天室对于实时消息的要求更高一些。因为在直播过程中会有连麦、送礼,这些消息和控制信令是绝对不能丢失的。


视频聊天


在视频聊天场景中,RTM SDK 除了可以用于实现聊天互动,还可以实现呼叫邀请、用户管理(用户在线状态、用户消息)。这个场景对实时消息的核心指标之一是高接通率,呼叫必到,不能漏掉重要的电话。


在线教育


在线教育的场景相对复杂一些,不仅需要有聊天互动和用户管理,还需要通过信令来同步课件、举手发言、禁言麦克风、实现白板功能,并且在课堂录制中需要提供历史消息,保证可以随时回溯课堂的聊天内容个白板内容。这些功能都需要通过 RTM SDK 来实现。


多种 IoT 场景


实时互动的场景不止会出现在手机屏和电脑屏上,在智能设备上也有实时互动的新场景,而且有些背后也有声网 RTM SDK 的支持。例如,智能家居的控制信令、智能手表的消息收发、VR/AR 中的实时标注,甚至智能车载的远程控制和车辆的位置状态同步也可以基于实时消息实现。


场景痛点与 RTM 特性


以上这些场景都可以通过声网 Agora 实时消息 RTM SDK 实现。RTM SDK 支持文字、表情、图片、文件、以及自定义消息。同时,还提供 RESTful 接口,开发者可以按照需求查询频道或者用户的历史消息。综上来讲,RTM SDK 支持的功能有两大类,实时消息与信令、用户频道与管理:



对于目前行业来讲,最大的痛点有三点:


  • 信令、消息延时大。 这会导致很多场景下不可用,比如在直播的高并发状态下,礼物或弹幕消息可能会卡壳、延时,主播不能及时看到这些消息,反应总会慢半拍,就会影响实时互动的体验。

  • 信令、消息可靠性差。 这里的可靠性指的是接通率、消息送达率。例如在线教育场景中,学生与老师的连麦、问答消息的发送等需要有很高的可靠性,否则就会导致较高的退课率。

  • 缺少对全球服务的支持。 现在很多线上场景都趋向于全球化,例如在线教育、跨境的客服服务、视频通话等。所以有较为完备的全球服务部署,对于实时消息服务来讲至关重要。


针对这些痛点,声网 Agora 实时消息 RTM SDK 具备以下特性:


抗弱网、高可靠


声网针对弱网场景下的实时传输进行了传输算法与策略的优化。经过实际测试,可以在 70% 丢包弱网情况下,保证消息 100%达到。


单频道百万高并发


RTM SDK 支持同时在线人数无上限,可支撑亿级消息并发,单频道百万并发,能应对多种高并发实时互动场景。


全球部署低延时传输


实时网络服务部署覆盖全球 200 多个国家和地区,结合声网自研的智能路由算法、基于深度学习的拥塞控制算法,以及最优的边缘节点接入策略,全球实时消息平均传输延时 < 150ms。与声网实时语音、视频 SDK 配合开发,可帮助开发者实现多种全球化的实时互动场景。


目前,新东方、美术宝、晓黑板、Kumu、VIP 陪练等团队都在通声网 Agora 实时消息 RTM SDK 在多种场景中实现实时消息的互动。


本文转载自公众号声网 Agora(ID:shengwang-agora)。


原文链接


开发者用作品告诉我们,RTM SDK 还可以这么用


2020-11-18 14:051601

评论

发布
暂无评论
发现更多内容

IPQ4019 IPQ4029 ,wallys ,802.11ac Outdoor Metal Waterproof Enclosure Metal Outdoor

wallys-wifi6

字节跳动基于ClickHouse优化实践之“多表关联查询”

字节跳动数据平台

数据库 数据分析 OLAP Clickhouse 数据查询

如何在OpenHarmony上使用SeetaFace2人脸识别库?

OpenHarmony开发者

OpenHarmony

如何选择适合自己的前端培训机构

小谷哥

中小微企业如何快速开发信息化系统

力软低代码开发平台

干货 | 工单系统与 ITSM 软件的区别是什么?

嘉为蓝鲸

运维 AIOPS 流程 ITSM 工单

Ding!您有一份ChunJun实用指南,请查收

袋鼠云数栈

学好前端开发技术的培训机构推荐

小谷哥

所有人!把膝盖准备好,这份“保姆级”的RabbitMQ笔记,你不服不行

退休的汤姆

面试 RabbitMQ 社招 Java工程师 秋招

开源一夏 | Docker Compose从入门到实践

微枫Micromaple

开源 容器 云原生 8月月更

Nginx + keepalived 实现高可用

C++后台开发

nginx 高可用 中间件 后端开发 C++开发

ElasticSearch 集群备份与恢复实践

移动云大数据

elasticsearch

开源小白到核心开发——我与 sealer 的成长故事

阿里巴巴中间件

Docker 阿里云 容器 云原生 sealer

java编程技术学习好还是自学好

小谷哥

Node js 开发入门 —UDP 编程,小白也能轻松学会

CRMEB

RT-Thread记录(十一、I/O 设备模型之UART设备 — 源码解析)

矜辰所致

RT-Thread 8月月更 IO设备模型

EMQ携“云边一体化”IoT解决方案亮相第十届中国电子信息博览会

EMQ映云科技

物联网 IoT 云边一体 emq 8月月更

“软件定义汽车”时代,车载生态安全运转需小程序化技术

Speedoooo

小程序 车联网 小程序容器 车载安全

阿里资深架构师熬夜纯手写的238页微服务容器化开发实战笔记

退休的汤姆

面试 微服务 社招 Java工程师 秋招

NFTScan 与 Bulletime 在 NFT 底层数据方面达成战略合作

NFT Research

区块链 NFT 合作伙伴

科创人·望繁信创始人索强:中国版流程挖掘注定有完全不同的活法

科创人

Apache Pulsar Tenant 和 Namespace 级别限速使用与实现

移动云大数据

pulsar

笔记 | 关于SRE在金融行业落地的探讨

嘉为蓝鲸

运维 金融 SRE

“似水无形” - 小程序化

FN0

小程序 容器化 轻应用

开源公开课丨大数据调度系统Taier任务调度介绍

袋鼠云数栈

前端程序员在培训学习中需要学习什么?

小谷哥

零基础学习java有必要参加吗?

小谷哥

IBM Semeru Windows 下的安装

HoneyMoose

IntelliJ IDEA 设置 IBM Semeru JDK

HoneyMoose

内网场景 Dubbo 微服务接入观测云

观测云

iofod - 借助低代码快速构建WeUI表单

独来独往

前端 低代码 表单 weui

开发者用作品告诉我们,RTM SDK 还可以这么用_软件工程_声网_InfoQ精选文章