语音房养成记 2 - 确立SDK供应商之后, 对语音房用到的核心能力的技术调研选型报告

前言

在确定采用 [声网] 和 [云信] 相结合的方式实现 “语音房” 功能后,
就语音房所需要的核心能力, 对两家SDK做了进一步技术能力调研.


调研结果

1] 声网SDK

负责实现语音推拉流/静音/混音/背景音 等功能, 只做底层能力提供者的角色;


2] 云信IM 聊天室 SDK

主要技术特点 :
1] 聊天室所有消息都不支持离线

结论 :
1] 所有的 进/出/踢/禁言/拉黑 等功能, 需要使用云信聊天室API开发;
2] 麦位管理, 需要使用云信的聊天室队列API实现, 声网不提供功能;
3] 麦位上的 请求上麦列表, 需要使用云信的聊天室队列API实现的, 声网不提供此功能;
4] 送礼/表情 等功能需要使用云信聊天室自定义消息实现;
用户进入语聊房之后, 需要先加入云信聊天室, 然后再加入声网语音频道, 那么用户进出聊天室的通知, 使用云信的即可, 不依赖声网的回调机制了.
还有就是声网的回调, 无法携带自定义扩展消息, 而且声网的回调, 返回的是 我们设置给声网的 AgoraUserId (int) , 这个有别于 现存的 AppUserId(long) 和 IMAccid(String) …..


3] 云信IM 系统自定义通知

主要技术特点 :

1] 客户端和服务端都可以发送
2] 有PUSH 以及通知栏消息展示
3] 不会触发会话, 可以不累加消息未读数
4] 目前支持两种类型:点对点类型和群类型(仅限高级群), 不支持给聊天室发送
5] 可以存离线消息


结论 : 

使用其实现语音房所需要的 “实时信令” 能力.


原因 :
如果使用云信IM 聊天室的自定义消息, 实现信令功能, 那么客户端需要做很多额外的屏蔽工作, 因为不支持点对点发送消息, 还需要在消息列表中做屏蔽, 而且只支持对在线用户发送消息, 没有离线功能, 推送.


4] 云信 信令 SDK

主要技术特点 :

1] 客户端和服务端都可以发送
2] 邀请机制, 有PUSH 以及通知栏消息展示, 自定义命令机制没有PUSH
3] 不会触发会话, 可以不累加消息未读数
4] 目前支持两种类型:点对点类型和频道内所有用户

结论 : 不使用


原因 :
1] 不想引入有相似功能的SDK;
2] 实现相同功能, 付出的开发成功更高;

推荐阅读
相关专栏
开发者实践
182 文章
本专栏仅用于分享音视频相关的技术文章,与其他开发者和声网 研发团队交流、分享行业前沿技术、资讯。发帖前,请参考「社区发帖指南」,方便您更好的展示所发表的文章和内容。