====== 环信语聊房场景介绍 ====== ===== 场景描述 ===== 环信语聊房(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 属性管理等功能协助实现可靠消息优先送达和房间保活,支持多种玩法拓展的需求,提升语聊房可用性。