概览

语音直播-电台方案简介 - 图1 语音直播-电台方案简介 - 图2

被动的动作的梳理和实现:
1、主播被动退出;
2、观众被动退出:
3、观众被动再进入:

接口列表:

  • 获取token:
  • 主播创建频道 : 收集频道名称、判断频道名称是否重复;
  • 观众加入频道: 收集观众设备id;收集用户id; (加入频道需要 token; )

正常通知逻辑:

  • 主播登出频道、或者切换频道,需要通知观众离开频道;
    • 实时消息接口:getMembers; 获取频道成员列表;
    • 发送频道消息接口: sendMessage; 频道的所有成员都会收到消息;
  • 关于通知登入频道:
    • 基于之前保存的用户列表;
    • 发送点对点消息接口:sendMessageToPeer;一个一个通知加入频道;

异常逻辑

需要自己维护的数据:

  • 用户
  • 频道;
  • 以上两样东西,说没就没;

其它:

  • 问:A-B通话,A掉线,A leaveChannel,B也leave Channel,A再重新连上网络,sdk会重新连上之前的channel么,
  • 答:B 已经Leave状态了,即使连上也不会有B的存在。同一个channelID相当于同一个频道,你所说的ChannelID声网是不会留存的,这个id对于你来说是区分频道的唯一手段,但是对于声网来说,并不关心你的频道创建还是销毁,希望你能好好的理解一下;

链接参考:

杂项(思考待确认)

  • 云端管控(确保所有的都已经离线;)
  • 用量监控 和 警报;
  1. 事件:
  2. onMemberJoined(不超过512人)当有用户加入的时候,就收到通知,并且计算一下成员列表;
  3. onMemberLeft;用户离开的时候收到回调;
  4. onMemberCountUpdated 成员数量;成员数量;
  5. Publish
  6. Subscribe
  7. Host:主播:
  8. Audience 观众;

附录:
其它厂商
1、网易云信;(收费价格差不多)
2、七牛;(虽然是免费,据说实时音频的技术支持不到位)
3、腾讯云:(会便宜一些);

其它方案:
cdn推流方案:会延迟1~2秒;如果是视频会延迟2~5秒;
cdn推流方案,会减少很多成本,但是开发成本和效果会打折扣;