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

2020 年 11 月 18 日

开发者用作品告诉我们,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:05855

评论

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

nginx 概念及上手

HelloZyjS

回“疫”录(22):我以为结束了,其实才开始

小天同学

疫情 回忆录 现实纪录 纪实

当我们持续感觉很糟糕要怎么办

七镜花园-董一凡

写作 生活质量 情感

2020年全球经济萎缩,火花国际PLUS逆袭而来闪耀数字经济

极客编

如何做好 To B 的 SAAS 服务

路边水果摊

SASS 企业 服务

敏捷为什么会失败之「PA-SA-WAKA-DA」理论

Worktile

Scrum 敏捷开发 Agile

Redis6.0 多线程源码分析

代码诗人

redis 源码 技术 线程模型

竟然有人想看我的「日记」,满足一下大家

非著名程序员

学习 程序人生 提升认知

Enhanced Github:一个 GitHub 专用的好插件

非著名程序员

GitHub 程序员 效率工具

Elastic Stack 系列专辑

Yezhiwei

elasticsearch Logstash Kibana ELK Elastic Stack

推动敏捷,就是推动软件业变革

盛安德软件

敏捷 推动软件业变革

JavaScript 基础拾遗(一)

吴昊泉

Java 学习 文章收集

kotlin 200行代码开发一个简化版Guice

陈吉米

Java kotlin guice ioc mynlp

Java 25周年:MovedByJava之观点

范学雷

Java 架构 编程语言

SpringBoot瘦身

JFound

Spring Boot sprnig

往日之歌

彭宏豪95

关于架构的几件小事:System context

北风

系统架构 系统性思考 架构师 系统上下文 极客大学架构师训练营

Django的ListView超详细用法(含分页paginate功能)

Young先生

Python django ListView 分页

为提升网点业务员效率,我们做的事情。

黄大路

商业

Redis 命令执行过程(下)

程序员历小冰

redis 源码分析

程序员需要了解的硬核知识大全

cxuan

Java c 计算机基础

万字长文带你看懂Mybatis缓存机制

程序员小岑

Java 源码 技术 mybatis

深入剖析ThreadLocal原理

JFound

Java

我的编程之路-4(进阶)

顿晓

进阶 看书 编程之路

职场“潜”规则

俊毅

个人成长 职场 新人 人才培养 能力模型

Spring Security 如何将用户数据存入数据库?

江南一点雨

Java spring Spring Cloud Spring Boot spring security

ARTS_20200520

凌轩

Java ARTS 打卡计划

Android | Tangram动态页面之路(五)Tangram原理

哈利迪

android

JVM源码分析之synchronized实现

猿灯塔

企业数字化转型:用 SpreadJS 打造互通互链的电力系统物联网

Geek_Willie

数字化转型 SpreadJS 电力

SQLite是什么

这小胖猫

sqlite 数据库 RDBMS 存储

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