美文网首页
RTC服务之策略切换

RTC服务之策略切换

作者: 新生代农民工No1 | 来源:发表于2021-06-20 15:51 被阅读0次

前言:
最近在接入多个RTC服务厂商,目前也了解了常用的一些厂商,如:腾讯、网易、声网、即构,阿里等等。在总体调用上类似,但某些SDK的细节处理上较为奇葩。
如果对于RTC服务有很高的要求或者需要做备选方案,那么接入多家RTC厂商就很有必要。值得一提的是,在接入多个SDK厂商之后,可以依据流量的大小,策略的分配不同厂商的RTC服务,从而降低费用。并且,当其中一家厂商的延迟较高时,可以通过切换不同的厂商RTC来提供服务,从而达到高稳定性。

为什么要做策略切换

  • 提高稳定性:由于故障性原因导致某些厂商RTC服务异常,或者由于网络阻塞延迟卡顿黑屏等等影响用户体验;服务端在通过对一些关键性指标分析后,从而策略的选择一种更适合当前的RTC厂商服务;
  • 降低资费:随着用户量的增长,从而带来了RTC服务的流量大大增长,那么某些厂商的资费也会大大增加,如果通过合理的分配流量到不同的厂商服务,那么即可通过较低的成本使用更为可靠的服务;(并且不会依赖某一家厂商,这点很重要哦)

策略切换

说到策略切换,那么如何去做呢?
客户端:
首先,我们需要确定自己的业务层有哪些需求。确定了业务层需求,接着就是去定义我们需要用到的RTC基础模型,基础定义,基础方法等。我们称之为 RTCManagerDef
基础定义中包括使用场景(Scene),角色(Role),网络质量(NetworkQuality)。
基础模型中包括不同厂商所需要的传参。
基础方法是对RTC服务商的抽象方法,由业务层直接调用,具体实现是基于RTC服务商。

其次,我们就可以用到熟悉的设计模式去设计整个动态切换的层级和功能类。这里是我对自己业务所设计的策略切换的RTC管理类。

策略切换
结构:
  • RTCManager(管理类):为业务层提供调用的方法;合理封装基础调用方法是这个管理类的重点;
  • RTCProtocal(RTC协议) :为业务层提供的RTC事件回调;
  • Context (关联类):解决内部调用不同RTC厂商服务,切换厂商服务策略以及关联内部实现和外部调用是这个类的作用;
  • EngineStrategy (引擎策略类):引擎策略的基础类,规范化众多RTC厂商服务的调用方法,统一内部方法;
  • ConcreteEngineStrategy (具体策略类):继承于引擎策略类,实现引擎策略类的方法,以及实现引擎内部事件回调,并回调RTCProtocal的事件;

整体架构基于设计模式中的策略、工厂、适配器等,这种架构主要是考虑到后期的拓展更多的厂商。 不能说是最好的方案,但是目前比较适合当前项目,对后面拓展比较友好,接入新的厂商不会影响现有的上层逻辑;
这种设计层级上可能会比较多,但是优点也是很明显的,随时可以切换不同的服务。

架构说完,就谈谈具体接入的问题吧;
因为想要做到可以策略切换不同的Service,所以需要将众多的Service providers适配自己的规则,这无疑是一件很难得事情,因为不同的RTC厂商内部的实现都各不相同,所以需要足够了解他们的调用顺序以及方法实现,状态回调等等。这需要和他们的开发者深度沟通之后才可以了解到。策略切换的重点就是使用自己制定的规范适配众多RTC厂商服务;

相关文章

  • RTC服务之策略切换

    前言:最近在接入多个RTC服务厂商,目前也了解了常用的一些厂商,如:腾讯、网易、声网、即构,阿里等等。在总体调用上...

  • win10和ubuntu 10.64 双系统启动,时间不一致的解

    把系统切换到ubuntu下面,打开终端,输入一下命令: timedatectl set-local-rtc tru...

  • 《Android源码设计模式解析和实战》状态模式

    和策略模式类似且不同;策略模式是切换不同的策略执行不同策略的统一方法;状态模式是切换不同的状态执行执行不同的方法;...

  • RTC驱动分析

    学号:19021211263 linux中的rtc驱动位于drivers/rtc下,里面包含了许多开发平台的RTC...

  • 2018-05Stm23L151C8t6低功耗模式RTC唤醒失败

    问题描述: stm32L151使用RTC唤醒来退出stop模式,RTC运行但不能唤醒 RTC唤醒成功后,进入sto...

  • 漫无目的

    今天研究了RTC实时时钟系统,知道在配置一个中断的时候就必须有一个中断服务函数与之相配。 原有的代码我觉得有很多的...

  • webrtc入门实战,粘去就行

    用一个html页面实现2个rtc通道连接,用户A(rtc) 给 用户B(rtc2)发视频看,展示用户A的视频 效果...

  • RTC

    [RK3128][Android 6.0] RTC设备注册及调用流程 [RK3128][Android 6.0] ...

  • RTC

    下面的程序根据固件库进行修改,变成自己想要的程序,包含RTC秒中断以及闹钟中断,由于嵌入式竞赛板没有外加晶振,所以...

  • RTC

    2016年实时互联网行业飞速发展。连麦互动直播迅速渗透垂直行业;狼人杀、Houseparty爆红带来的全新社交模式...

网友评论

      本文标题:RTC服务之策略切换

      本文链接:https://www.haomeiwen.com/subject/lcdbeltx.html