RTC服务之策略切换

2021-06-20  本文已影响0人  新生代农民工No1

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

为什么要做策略切换

策略切换

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

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

策略切换
结构:

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

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

上一篇 下一篇

猜你喜欢

热点阅读