直播间状态变更通知所有用户方案

直播间状态有以下特点:

1、直播间状态的更改需要实时通知直播间用户

2、新进入直播间用户需要获取当前直播间状态

综上,这里提供两种实现方案。并分析两种方案的优缺点。

方案 优点 缺点
业务后台维护直播间状态,使用 IM 服务端 API 发送 群自定义消息 通知群内用户。(第三方im服务) 需要频繁多次获取直播间状态时,相比于将直播间状态存 IM 群资料,直播间状态存业务后台可以减少 IM SDK 的调用频率。提供在未集成 IM SDK 地方提供获取直播间状态的可能。 需要业务后台额外提供读写直播间状态模块。增加获取直播间数据异常概率,直播间数据来自业务后台和 IM 群资料两部分。发送自定义消息有丢失的可能,当消息量特别大时,低优先级消息会优先被丢弃从而影响直播间状态的显示。因此这里建议使用高优先自定义消息。
通过群自定义字段或者群属性存储直播间状态,通过客户端 SDK 群属性更改回调 通知群内用户。(第三方sdk房间KV属性表) 开发者不需要提供额外的读写直播间状态模块。群属性变更回调理论上不存在丢失可能。直播间数据都从群资料中获取,统一数据源,减少异常。 在高曝光模块需要频繁获取群资料,增大 IM 压力。在未集成 IM SDK 模块,需要通过业务后台调用 IM 服务端 SDK 获取群资料。且调用频率有限制。

通过上面的分析,我们建议使用方案一与方案二相结合的方式,维护直播间状态:

1、在直播间内,使用 方案一获取直播间状态

2、在直播间外、使用方案二获取直播间状态

3、业务后台直播间状态更改后及时通过 IM 服务端接口 同步数据到 IM 群资料(群属性、群自定义字段)

注意

除以上方案外还可以自己写长链接推送信息,在小团队中不建议使用,稳定性、维护成本比较高。不如直接用成熟的第三方服务。如声网、即构、融云等。

引用链接

[1] IM 服务端接口: https://cloud.tencent.com/document/product/269/1520