tencent cloud

文档反馈

弹幕及会话聊天集成指引

最后更新时间:2022-11-21 16:56:28

    概述

    在直播业务中,往往存在主播与观众间实时交互的场景需求如弹幕、会话聊天等,接入往往比较复杂,本文以腾讯云即时通信 IM为基础,梳理了在直播过程中弹幕、会话聊天、商品推送等需求的实现方案,以及可能遇到的问题、需要注意的细节点等,帮助开发者们快速的理解业务,实现需求。

    重点功能介绍

    功能 说明
    直播弹幕、送礼和点赞 支持亿级消息并发,轻松打造良好的直播聊天互动体验。
    直播单聊、群聊等多种聊天模式 用户可以在这里发送自己想说的话并且可以收到同一个聊天室中其他成员的消息。支持文字、图片、语音、短视频等多种消息类型,实时消息推送,有效提升用户粘性与活跃度。
    直播带货商品推送 在直播带货场景中,主播推荐某款产品时,屏幕下方的商品位需要立即更新为当前产品,并需要通知所有在直播中的用户有新的商品上线,商品上新消息一般由小助手触发。
    直播间大喇叭 相当于一个直播间维度的系统公告功能,当系统管理员下发大喇叭消息时,SDKAppID 下所有直播间均可收到该大喇叭消息。

    接入方法

    步骤1:创建应用

    使用腾讯云搭建直播间首先要在 控制台 创建一个即时通信 IM 应用,如下图所示:

    步骤2:完成相关配置

    准备工作步骤一中创建的应用为体验版,只适合在开发阶段使用,正式环境用户可结合自己业务需求,开通专业版或旗舰版。不同版本之间的差异可参见 即时通信 IM 价格文档
    在直播场景中,除了创建应用之外,还需要一些额外的配置:

    • 使用密钥计算 UserSig
      在 IM 的账号体系中,用户登录需要的密码由用户服务端使用 IM 提供的密钥计算,用户可参见 UserSig计算 文档,在开发阶段,为了不阻塞客户端开发,也可在 控制台计算 UserSig ,如下图所示:
    • 配置管理员账号
      在直播过程中,可能需要管理员向直播间发送消息、禁言(踢出)违规用户等,这时就需要使用 即时通信 IM 服务端 API 来进行相应的处理,调用服务端api前需要 创建 IM 管理员账号,IM 默认提供一个 UserID 为 administrator 的账号供开发者使用,开发者也可以根据业务的场景,创建多个管理员账号。需要注意的是,IM 最多创建五个管理员账号。
    • 配置回调地址以及开通回调
      在实现直播间弹幕抽奖、消息统计、敏感内容检测等需求时,需要用到 IM 的回调模块,即 IM 后台在某些特定的场景回调开发者业务后台。开发者只需要提供一个 HTTP 的接口并且配置在 控制台 > 回调配置 模块即可,如下图所示:

    步骤3:集成客户端 SDK

    在准备工作都完成好后,需要将即时通信 IM 以及实时音视频 TRTC 的客户端 SDK 集成到用户项目中去。开发者可以根据自己业务需要,选择不同的集成方案。请参见 快速集成系列文档
    接下来文章梳理了直播间中常见的功能点,提供最佳实践方案供开发者参见,并附上相关实现代码。

    步骤4:直播间重要功能开发指引

    1. 选择群类型
      在直播这个场景,用户聊天区域有以下特点:
      • 用户进出群频繁,且不需要管理该群会话信息(未读、lastMessage等)
      • 用户自动进群不需要审核
      • 用户临时发言,不关注群历史聊天记录
      • 群人数通常比较多
      • 可以不用存储群成员信息

    所以根据 IM 的 群特性,这里选择 AVChatRoom 作为直播间的群类型。即时通信 IM 的直播群(AVChatRoom)有以下特点:

    • 无人数限制,可实现千万级的互动直播场景
    • 支持向全体在线用户推送消息(群系统通知)。
    • 申请加群后,无需管理员审批,直接加入。
      说明:

      IM Web 限制同一用户在同一时间内,只能进入一个 AVChatRoom,在 IM 的多端登录场景,如果用户登录终端一在直播间 A 观看直播,在 控制台配置 允许多端登录情况下,该用户登录终端二进入直播间 B 观看,这时终端一的直播间 A 会被退群。

    1. 设置直播间弹幕、送礼、点赞
    • 弹幕
      AVChatRoom 支持弹幕、 送礼和点赞等多消息类型,轻松打造良好的直播聊天互动体验。
      弹幕消息的构建,可以通过使用IM的API创建文本或自定义消息,在发送成功后根据您需要在直播间展示弹幕的方式,通过接收 新消息的回调,获取直播间新消息的文本或者自定义等属性,之后使用不同的UI进行上屏展示。
    • 送礼
      • 客户端短连接请求到自己的业务服务器,涉及到计费逻辑。
      • 计费后,发送人直接看到 XXX 送了 XXX 礼物。(以确保发送人自己看到自己发的礼物,消息量大的时候,可能会触发抛弃策略)
      • 计费结算后,调用服务端接口发送发送自定义消息(礼物)。
      • 如果遇到连刷礼物的场景需要进行消息合并。
        • 如果直接选择礼物数量的刷礼物,如:直接选择 99 个礼物,1 条消息发送,参数带入礼物数量 99。
          • 如果连击的礼物,不确定停留在多少个,可以合并每 20 个(数量自己调整)或者连击超过 1 秒,发送一个。按照上述逻辑,例如连击 99 个礼物,优化后仅需要发送 5 条。
    • 点赞
      • 点赞与礼物略不同,点赞往往不用计费,所以一般采用端上直接发送的方式。
      • 针对与有需要服务端计数的点赞消息,在客户端节流之后,统计客户端点赞次数,将短时间内多次点赞消息合并之后,仅发送一次消息即可。业务方服务端在发消息前回调中拿到点赞次数进行统计。
      • 针对与不需要计数的点赞消息,与步骤2中的逻辑一致,业务要在客户端对点赞消息节流后发送,不需要在发消息前回调中计数。
    1. 直播带货商品推送
      主播推荐某款产品时,屏幕下方的商品位需要立即更新为当前产品,并需要通知所有在直播中的用户有新的商品上线,商品上新消息一般由小助手触发。推荐采用管理员修改群自定义字段的方式实现商品上新消息通知,具体步骤如下:

      1. 添加群自定义字段

        1. 登录 即时通信 IM 控制台 ,单击目标应用卡片,在左侧导航栏选择功能配置 > 群组配置

        2. 群自定义字段页面,单击添加群维度自定义字段

        3. 在弹出的群维度自定义字段对话框中,输入字段名称,设置群组类型及其对应的读写权限。

          说明:

          • 字段名称只能由字母、数字以及下划线(_)组成,不能以数字开头,且长度不能超过16个字符。
          • 群自定义字段名称不允许与群成员自定义字段名称一致。
        4. 勾选我已知道"群维度自定义字段"添加后,仅可修改已添加群组类型的读写权限;无法删除该字段,无法重新选择也无法删除已添加的群组类型。单击确定保存设置。

          说明:

          群维度自定义字段配置后大约10分钟左右生效。

      2. 使用群自定义字段
        小助手以群管理员的角色身份,适时调用 修改群组基础资料 REST API 更新对应的群自定义字段,从而实现直播间的商品上新通知和直播状态改变消息通知。

    2. 直播间大喇叭
      大喇叭功能相当于一个直播间维度的系统公告功能,但有别于公告,大喇叭功能属于消息。当系统管理员下发大喇叭消息时,SDKAppID 下所有直播间均可收到该大喇叭消息。
      大喇叭功能目前属于旗舰版功能,且需要在控制台开通。业务后台发送大喇叭消息请参见 直播群广播消息

      说明:

      若开发者版本非旗舰版,可在服务端发送群自定义消息进行实现。

    相关文档

    若您还有其他直播间功能例如:实现直播间用户身份、等级;获取直播间历史消息;展示直播间在线人数等功能,请参见 直播间各功能开发指引

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持