====== 环信语聊房场景介绍 ======
===== 场景描述 =====
环信语聊房(Easemob Chat Room)场景方案是环信打造的一款低门槛、高可用的语聊房场景方案。该场景方案融合了环信即时通讯云的聊天室和声网 RTC 的音频技术,提供市面主流的语聊房 App 的功能,其核心功能包括房间管理、麦位控制、聊天打赏和音频特效等,覆盖语音游戏、语音社交、相亲交友等场景,能够较为全面满足客户的语聊房开发需求。同时,环信 IM 的聊天室中的 [[http://docs-im-beta.easemob.com/document/ios/room_attributes.html|KV 属性管理和自动销毁]]以及[[http://docs-im-beta.easemob.com/document/ios/message_send_receive.html|消息优先级]]等功能能够对语聊房的功能性进行有效补充和拓展。
===== 功能列表 =====
语聊房通常需要实现如下功能:
^功能 ^描述 ^实现产品 ^
|实时音频互动 |超低延时下,观众实时接收主播的音频流,保证直播间互动的流畅性。 |Agora Audio SDK |
|实时消息互动 |直播间内的房主和观众使用文字消息实时交流;观众还可以通过实时消息给主播赠送礼物,增加互动气氛。 |环信 IM SDK |
|房间管理 |语聊房的管理包括创建房间、加入房间、 离开房间、踢出房间和销毁房间。 |App Server |
|麦位控制 |麦位即语聊房的座位,同房间内最多支持 64 人同时连麦。房主可对麦位进行管理,包括邀请观众上麦、禁麦、解禁、封麦和解封以及使主播强制下麦等操作。
- 上麦:观众上麦。上麦后,观众成为连麦主播,可以和房主实时互动。
- 下麦:主播主动下麦或房主将主播踢下麦,使其恢复为普通观众。
- 禁麦:房主不允许连麦主播发言。
- 解禁麦位:房主恢复连麦主播的发言权限。
- 锁麦:锁定麦位,不允许任何人上麦。锁麦时,该麦位的主播会被踢下来成为普通观众。
- 解锁麦位:麦位恢复空闲状态,观众可以在该麦位申请上麦。
- 换麦:主播可申请从一个麦位切换到另一个空闲麦位。 |环信 IM SDK 或者 App Server |
===== 技术方案 =====
环信语聊房是通过使用环信即时通讯和声网 RTC 共同搭建。
Android Demo 架构如下图所示:
{{:ccim:voiceroom:android_demo_architecture.png?700|}}
iOS Demo 架构如下图所示:
{{:ccim:voiceroom:ios_demo_architecture.png?700|}}
各模块实现的功能如下:
^模块 ^实现功能 ^
|RoomService/business |基于 App Server 的房间管理。 |
|Commons/commons |公用工具类和基类。 |
|RoomScene/component |基于 App Server 的语聊房内部场景管理。 |
|IM 组件 |对聊天室 API 和事件的封装。 |
|基础请求组件 |基础网络请求的实现。 |
|音频组件 |实现音频流的传输和互动。 |
|App Server |实现用户登录、房间管理、房间内信息管理和麦位管理。 |
===== 方案优势 =====
==== 全面的场景核心功能 ====
功能丰富,支持房间管理、麦位控制、聊天室、点赞打赏等核心模块。
==== 完整的麦位控制 ====
全面麦位控制,支持上麦申请和邀请机制以及锁麦、禁麦和换麦等操作。
==== 真实的打赏模块 ====
贴近真实场景,支持发送礼物、自定义礼物数量、打赏榜单和打赏统计等功能。
==== 完成度较高的 Demo ====
环信提供完成度较高的语聊房 Demo、App Server 核心代码供参考,协助快速打造语聊房场景。
==== 完善的聊天室功能 ====
聊天室消息分级和 KV 属性管理等功能协助实现可靠消息优先送达和房间保活,支持多种玩法拓展的需求,提升语聊房可用性。