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