WICC 2021 技术分论坛 “开箱即用”语聊房 Demo 成亮点
7 月 24 日,第三届全球互联网通信云大会(WICC 2021)在北京成功召开,数千开发者共赴通信云技术盛宴。
本次会议中,“开发者服务生态”被作为重要议题引起了全产业链的广泛关注。作为大会主办方,全球互联网通信云领导厂商融云不但提出了为什么要服务好开发者的观点,而且还带来了怎样构建开发者服务生态的解决方案。
例如,在“场景化赋能与创新”技术分论坛中,融云前端高级架构师臧其龙发表了《基于语聊房场景化 SDK,探索新一代 PaaS 服务的演进方向》的主题演讲,他以融云语聊房 Demo 为载体,通过解析语聊房场景的业务逻辑和技术关键点,传递了真正能让开发者“开箱即用”的产品理念,这不仅是开发者服务生态的解决方案之一,还成为技术分论坛的开发者关注亮点。
图 1:融云前端高级架构师臧其龙发表演讲
细致入微,剥离出场景背后的核心业务逻辑
在技术分论坛中,臧其龙首先解释了封装首款基于场景化 Demo 的初衷,“由于年初 Clubhouse 和 Tiya 两款语聊房产品的示范效应,带动泛娱乐领域对各类语聊房 App 旺盛的市场需求。融云针对这一热点需求,选择以语聊房产品作为探索新一代 PaaS 服务的切入点。”
当进一步剖析语各类聊房 App 的功能后,臧其龙发现,虽然它们长相各异,但场景结构大体相似。其业务逻辑可定义为:以上麦下麦的形式来管理用户发布或者订阅音频流逻辑的 SDK。所谓上麦,即用户开启发布音频流的能力,房间其他人可以听到麦位上人的音频;下麦则是用户转变为普通用户,只能听别人发布的音频流,自己不能发布。
因此,融云出品的语聊房产品遵循这一定义,抽象出语聊房 App 中的所有功能,形成了较为完整的场景化 SDK,并且基于此提供相应的 Demo,便于开发者“开箱即用”。这也是融云首次将 IM 和 RTC 的双重能力在底层完全打通封装成一个 SDK 接口,提供给开发者。
隐藏技术设计难点,开发者只需关注自身业务诉求
融云在研发过程中,通过对语聊房产品的逻辑分析发现,在业务场景实现方面,关键的技术难点来自于三个方面:
图 2:语聊房 Demo 设计技术关键点
第一,如何实现麦位状态的云端存储与通知。麦位状态的变更必然要通知到语聊房房间内,包括观众和主播在内的所有人,并且 App 也需要根据麦位状态的变化,更新 UI 呈现。
要实现这一功能,必须面对复杂的业务流程,比如,如何订阅流?如何订阅主播的流?如果麦位上的角色从观众切换到主播后,也要面临如何去发布流的问题。在融云语聊房场景化的 SDK 中,这些复杂细节已经全部基于融云聊天室属性管理(KV)完成,因此,开发者不必关心订阅流的逻辑,不必关心设置、删除、获取以及设置回调等属性变化和麦位状态变化,只需通过一个 EnterSeat 接口,在收到回调后,刷新 UI,两步操作即可全部实现。
第二,如何实现邀请上麦和排麦请求。这主要涉及 App 中的邀请机制和申请机制,例如在语聊房主播邀请一个或多个观众合唱的场景中,面临主播发出邀请,受邀观众收到邀请,选择同意、取消或者拒绝的流程。这时,邀请机制能否及时送达、及时接收十分重要,一旦消息丢失、乱序,都会直接影响到用户体验。
在融云语聊房 SDK 中,利用融云 IM 信令,通过调用 RequestSeat 实现请求上麦,管理员会在收到 RequestSeatListDidChange 回调,拿到申请连麦的人员列表后,选择 Accept、reject,甚至 cancel 来处理请求。那么相应发起申请的观众端,就会收到 RequestSeatDidAccept 或者 reject。也就是说,细节已被全部隐藏,开发者只需要通过非常直白的命名,在 5 分钟甚至更短的时间内,就能理解整个流程的实现方式。
第三,如何设计 API。臧其龙强调应该要设计出简捷但不简单的 API 接口,既要求设计简捷方便开发者调用,又必须覆盖所有功能。为此,融云在设计时秉持三个原则:
贴近业务 不能过度抽象脱离业务,这一点刚好与一般 SDK 设计原理相反;
可扩展 覆盖所有语聊房的场景,包含狼人杀等特殊场景,所以在特定模型上增加了扩展,比如麦位的 extra;
简洁易用 屏蔽多余逻辑,例如屏蔽用户手动订阅流等。
这样一来,开发者如果只需要上麦下麦和通话场景,而无需“礼物”、“点赞”等功能,使用融云语聊房场景化 SDK,只要两个回调就能够实现。如若加上“礼物”、“点赞”以及单群聊场景,只需将 voice room mode 模块完整地拖到自己的 rss 项目里,也只要 5 分钟就可以满足需求。因此,融云语聊房场景化 SDK & Demo,极大节约了开发者的研发成本,包括时间成本和人员成本,是一款真正意义上的“开箱即用”产品。
融云下一阶段发力重点,提供更多场景化 Demo
使用融云这款语聊房场景化 SDK 的另一个好处是它提供了安全审查能力。臧其龙向开发者承诺:包括融云语聊房 SDK、IMLib SDK 在内的所有用户,在使用中大可以把工作重心放在产品核心能力研发上,融云的安全审查能力可对图、文、音、视全面设防,为客户提前排除业务风险。实际上,不仅仅是这款产品,融云的 IMKit 和 RTC 都提供了同样的语音鉴黄、视频鉴黄能力,并且可以针对敏感信息第一时间进行后台拦截。
对于未来,臧其龙透露,不同场景的覆盖,是下一阶段融云的重要发力点。为帮助开发者获得高质量的产品使用体验,融云认为仅仅提供 SDK 和 API 接口都是“不负责任”的做法,因为针对某一特定场景,开发者往往要在上百个 SDK 中,寻找适合自己业务逻辑的某几十个或十几个 SDK,这对开发者来说,绝非易事。
因此,针对直播场景、会议场景、在线教育场景等多个热门场景,融云将逐步为其提供场景化 Demo,进一步简化开发者的开发成本。贴近开发者,提炼并满足开发者的共性需求,做开发者值得信赖的伙伴,这是融云的初心,不会改变。
结语
本届 WICC,融云在技术分论坛提出要基于语聊房场景化 SDK,探索新一代 PaaS 服务的演进方向:随着 SDK 数量增多,PaaS 通信云厂商要深入理解不同行业的业务层,展开场景化能力的比拼。融云率先推出了语聊房场景化 Demo 产品,实践并引领着 PaaS 通信云赛道新的增长点。
评论