直播聊天室集成介绍


前言:本文将介绍环信直播聊天室的主要功能列表。并讲解基于环信直播聊天室,实现一个典型视频直播产品的步骤。

视频直播已经是一种成熟的产品形态,在不同行业中有多种应用场景。在泛娱乐行业,游戏直播、秀场直播、演唱会直播等已经走进广大用户的日常生活;在电商行业,网红带货直播已经成为增长的新动能;在教育行业,1对多的教育直播也正在改变着整个行业的格局。视频直播占用着越来越多的用户使用时间。随着线上线下服务的进一步融合,视频直播也将会有迎来越来越多的使用场景。

现在已经很少有视频直播产品的技术栈完全是自建开发。让专业的人做专业的事。通常来说,一个典型的视频直播产品会使用二类外部厂家的能力:直播聊天室SDK和视频直播SDK。环信是典型的直播聊天室SDK供应商,主要负责提供视频直播中的文字聊天室部分,如聊天室IM消息收发、弹幕、刷礼物、聊天室人员管理等功能。视频直播SDK的典型供应商是阿里云,UCloud等,主要提供视频编解码、主播推流到CDN,观众从CDN拉流观看等功能。

环信直播聊天室,主要的功能特性包括:

聊天室消息类型及扩展功能

  • 支持丰富的消息类型,包括文字、语音、图片、点赞、礼物、弹幕等类型,同时支持自定义消息,您可以根据自己业务逻辑来自行实现;(点赞、礼物、弹幕用户可以使用自定义消息实现)
  • 实时消息回调,支持对用户发送的消息进行处理,可以在您的应用服务器上实时保存聊天记录;

聊天室管理功能:

  • 聊天室创建和销毁;
  • 聊天室成员管理功能,支持加入、离开、禁言、踢人、封禁等用户操作;
  • 支持黑名单功能,被列入黑名单的用户不能再次加入聊天室;
  • 支持多管理员,除主播外可以指定管理员,对成员进行管理;

内容审核:

  • 敏感词过滤&消息反垃圾,支持自定义敏感词对消息进行过滤,基于用户行为智能反垃圾;

超大并发直播聊天室:

  • 消息分级,白名单,支持超大并发直播聊天室;

一个典型的视频直播产品通常由3个厂家的模块构成:

  • 视频直播SDK
  • 直播聊天室
  • 视频直播产品厂家的业务代码

典型的视频直播产品APP端的架构图如下:

图1.视频直播APP端架构示意图

视频直播SDK提供直播推拉流相关功能。可以参考以下视频直播服务CDN厂商提供的直播SDK:

视频直播SDK分为主播端和观众端,主播端主要负责视频采集编码,然后推流到直播服务器;观众端主要负责从直播服务器拉流,并进行视频解码和视频播放。您可以根据自己实际的业务场景,将主播和观众端分离成2个APP,也可以将主播端和观众端打成一个APP包。

图2.视频直播SDK架构示意图

环信直播聊天室的集成分为服务端集成和客户端集成。

业务服务器需要做什么

业务服务器上,和视频直播业务最直接相关的模块有2个:

  • 用户体系管理:负责记录和管理直播业务的用户,如主播和观众的创建和删除,用户的头像、昵称、等级等信息的维护
  • 直播间管理:负责记录和管理当前进行中或者已结束的直播间信息,如创建和销毁直播间,名称、封面、属性等直播间信息的维护

以上2个业务模块和环信直播聊天室的集成点是:

  • 环信聊天室的创建、获取、修改、删除等功能的集成:业务服务器的直播间管理模块调用环信服务器的聊天室管理API。和服务器端聊天室管理有关的API主要有3个部分:管理聊天室管理聊天室成员管理禁言
  • 直播回放:直播回放需要使用环信聊天记录功能,配合CDN厂商的视频录制回放功能来完成。

APP客户端需要做什么

开发环境准备

首先当然是开发环境的准备,SDK的导入等。详见各端文档:

理解APP主播端操作的典型时序

如下图:

根据以上时序图的序号,我们逐个讲解APP主播端的主要操作:

1.创建聊天室:首先在业务服务器上创建聊天室,然后业务服务器调用环信API在环信服务器创建聊天室。环信创建聊天室API只需要传入roomID和环信用户ID这2个参数

5.更新聊天室名称和属性:通常来说,直播APP都是调用业务服务器上实现的更新聊天室详情方法,和环信服务器无关。因为,向观众推荐聊天室列表、列表排序以及聊天室详情profile,这些都是业务问题。

7.删除聊天室成员(踢人)

8.添加成员到聊天室黑名单、从聊天室黑名单移除成员、分页获取聊天室黑名单

9.更新聊天室公告

10.销毁聊天室

理解APP观众端操作的典型时序

如下图:

根据以上时序图的序号,我们逐个讲解APP观众端的主要操作:

1.获取聊天室列表、获取聊天室详情:通常来说,直播APP都是调用业务服务器上实现的获取聊天室列表和聊天室详情方法。因为,向观众推荐聊天室列表、列表排序以及聊天室详情profile,这些都是业务问题。聊天室列表推荐以及排序更是一个视频直播APP的核心算法和运营能力的体现。

3.加入聊天室:拿到聊天室详情信息后,找到环信聊天室roomID字段。调用环信SDK的相应API,加入聊天室。

4.获取聊天室历史消息:新进入聊天室的用户,对聊天上下文不清楚,不知道之前别人说了什么。环信支持「聊天室最近消息历史」功能。这个功能默认关闭,需要联系客户经理打开。

6.获取聊天室成员列表:通常这个功能由业务服务器来实现,既业务服务器维护聊天室成员名单或部分成员名单(很多时候,大型聊天室并不需要维护所有成员的名单,从性能上来说,也不经济)。APP端从业务服务器主动拉取聊天室成员列表,或者由业务服务器向APP端推送聊天室成员列表。也可以在APP端通过缓存聊天室广播的用户退出/加入的消息来实现。

8.发消息。和消息有关的内容包括:

  • 发送和接收消息
  • 礼物和点赞消息的实现:环信SDK提供礼物和点赞的消息类型
  • 弹幕的实现:弹幕是纯UI的展现方式,是由开发者在客户端自行实现

9.显示主播和观众的头像、昵称、等级和其他详细profile信息:获取到聊天室成员列表后,调用业务服务器的方法,获取并显示主播和观众的头像、昵称、等级和其他详细profile信息。注意,环信服务器只保存用户的环信ID,不保存用户的头像、昵称等业务信息。相关的文档请见: 用户体系集成昵称和头像的显示与更新

以上时序图未提到的功能包括:

  • 获取聊天室公告
  • 获取聊天室人数

完整的客户端的文档详见::

直播的CDN费用由CDN厂商收取。环信直播聊天室部分的费用按照环信IM产品的标准计价方式,既按日活收费:

详见:

https://www.easemob.com/pricing/im#p02