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