编辑: 贾雷坪皮 | 2016-09-08 |
>
单击下载 Android SDK >
>
下载 iOS SDK 查看 GitHub iOS 源码下载与导读 >
>
单击下载 iOS SDK >
>
H5 源码下载与导读 >
>
常见解决方案 产品文档 版权所有:腾讯云计算(北京)有限责任公司 第7 共18页 直播聊天室接入指引 直播场景的聊天室主要包括如下几大类核心操作: 创建聊天室(包括主播创建聊天室和 App 后台通过 REST API 创建聊天室) 观众申请加入聊天室(包括匿名加入聊天室) 观众在聊天室中发言 App 接收聊天消息 集成准备工作 本小节我们将引导您如何从零开始在直播 App 中集成聊天服务.在真正开始集成 IMSDK 之前,您必须完成一些接 入准备工作,包括:应用接入和用户体系集成.在完成这两步之后,您需要将 SDK 集成到您的 App 中,然后才能 开始调用直播聊天室相关的 SDK 接口. 应用接入 详细请参阅 应用接入指引. 用户体系集成 云通信提供 独立模式 和 托管模式 两种用户体系集成. 如果您的 App 自主维护用户的注册、用户身份的验证,则应当使用独立模式. 如果您只是想快速开发一个 App 原型,云通信可以为您提供一套符合业界通用安全标准的用户体系,用户的注 册、用户身份的验证将全部由云通信提供,此时应当选用 托管模式. 客户端集成 客户端集成是将 IMSDK 集成到您的 App 中,详细请参阅以下接口中的描述: Android 客户端集成 iOS 客户端集成 Windows C++ 客户端集成 创建直播聊天室 接下来您便可以通过 SDK 提供的接口来实现直播聊天室.通过 IMSDK 创建直播聊天室(AVChatRoom),详细请参 阅以下接口中的描述: Android 创建群组 iOS 创建群组 Windows C++ 创建群组 通过 REST API 创建直播聊天室,详细请参阅 REST API:创建群组. 常见解决方案 产品文档 版权所有:腾讯云计算(北京)有限责任公司 第8 共18页 申请加入聊天室 通过 IMSDK 申请加入聊天室,详细请参阅以下接口中的描述: Android 申请加群 iOS 申请加群 Windows C++ 申请加群 注意: 用户加入 AVChatRoom 后,如果发生异常登出 logout 或者 App 进程崩溃 crash 的情况,在重新上线 login 或者重启 App 进程后,需要再次调用申请加群才能继续在原来的 AVChatRoom 中收发消息. 收发消息 通过 IMSDK 收发消息,详细请参阅以下接口中的描述: Android 消息收发 iOS 消息收发 Windows C++ 消息收发 通过 REST API 发送消息,详细请参阅 REST API:在群组中发送普通消息. 直播场景一些 IM 相关特殊需求的实现方法 聊天室成员进出通知 当聊天室中有用户进入或者离开时,云通信后台会下发成员进出通知. 新用户入群通知,详细请参阅以下接口中的描述: Android 用户入群通知 iOS 用户入群通知 Windows C++ 用户入群通知 用户退群通知,详细请参阅以下接口中的描述: Android 用户退群通知 iOS 用户退群通知 Windows C++ 用户退群通知 云通信后台会对用户进出聊天室的消息进行频率控制,详细请参阅 消息优先级与频率控制. 常见解决方案 产品文档 版权所有:腾讯云计算(北京)有限责任公司 第9 共18页 获取观看直播的用户列表 直播 App 有时需要展示当前用户列表.单个 AVChatRoom 本身支持的用户数量无上限,但是只能够获取到部分群 成员列表,最多为
300 个成员. 通过 IMSDK 获取群成员列表,详细请参阅以下接口中的描述: Android 获取群成员列表 iOS 获取群成员列表 Windows C++ 获取群成员列表 获取观看直播的人数 AVChatRoom 的人数统计并不是实时的,有1分钟左右的时延.App 管理后台通过 REST API 接口获取当前群人 数,详细请参阅 获取群组资料(回包中的 MemberNum 字段). IMSDK 获取当前群人数,详细请参阅以下接口中的描述:: Android 获取群组资料 iOS 获取群组资料 Windows C++ 获取群组资料 注意: AVChatRoom 针对大规模直播场景,在人数统计上是以 有收发消息的动作 来衡量,统计结果存在时延且 不完全准确.在人数较少的场景(比如只有几十人)下,统计的偏差会比较明显. 通过 H5 匿名接收 IM 消息的用户也会被计入聊天室人数中.但由于这些用户没有登录,不可能在用户列 表中得到展示. 在聊天室中下发自定义消息 云通信的消息原生支持文本、图片、语音、表情等.如果 App 存在一些特殊的消息需求(例如点赞消息、红包消息 等),可以通过云通信的自定义消息实现. 通过 IMSDK 发送自定义消息,详细请参阅以下接口中的描述: Android 发送自定义消息 iOS 发送自定义消息 Windows C++ 发送自定义消息 通过 REST API 发送自定义消息,详细请参阅 REST API:在群组中发送普通消息. 常见解决方案 产品文档 版权所有:腾讯云计算(北京)有限责任公司 第10 共18页 注意: 如果需要使用云通信的脏字过滤功能,请注意自定义消息的结构设计,详细请参阅 敏感词(脏字)过滤. 为方便调试,建议 App 使用 JSON 来组织自定义字段.不建议使用二进制数据. 消息优先级与频率控制 当AVChatRoom 中的人数较多时,发消息的用户可能会非常多,导致一秒之内产生的消息量非常大.消息频率过 高,会对云通信服务后台和App 的渲染造成压力,也会加大客户端流量.此外,如果 App 界面的消息滚动速率过 快,可能导致用户无法看清消息. 基于上述考虑,云通信会对单个 AVChatRoom 中的消息进行频率控制.详细请参阅 消息优先级与频率控制. 聊天室禁言与全局禁言 某些用户可能会在聊天室中发送广告或者其它不良信息,此时可以考虑将该用户禁言.禁言分为两个维度: 群组维度的禁言:用户在指定群内无法发言,即使退群再加群也不例外.群主和管理员具备此权限. 全局维度的禁言:用户在所有群组中都不能发言,同时也不能发送单聊消息.仅App 管理员具备该权限. 通过 IMSDK 实现群内禁言,详细请参阅以下接口中的描述: Android 对群成员进行禁言 iOS 对群成员进行禁言 Windows C++ 对群成员进行禁言 通过 REST API 实现群内禁言,详细请参阅 REST API:批量禁言和取消禁言. 通过 REST API 获取群内被禁言用户的列表,详细请参阅 REST API:获取群组被禁言用户列表. 通过 REST API 设置全局禁言,详细请参阅 设置全局禁言. 通过 REST API 查询全局禁言,详细请参阅 查询全局禁言. 敏感词(脏字)过滤 所谓脏字过滤,是指 App 可以在云通信后台配置一批敏感词,如果云通信后台在用户发送的消息中检测到这些敏感 词,则拒绝下发该消息,并向发送者返回错误码