Skip to content

easemob/livestream-demo-app-server

Repository files navigation

Livestream Demo App Server

logo

简介

该服务为 环信直播间Demo 提供后端服务,可作为 App 使用环信SDK实现直播间的服务器端实现示例。

1、每一个直播间,都唯一对应一个聊天室, 直播间复用了对应聊天室的所有资源,包括聊天室详情及成员列表等;
2、新建一个直播间会同时新建一个聊天室;新建一个直播间时,该直播间的直播状态为“未直播”,当前直播场次ID为0(直播场次ID默认为0,没开始一场直播,直播场次ID加1);
3、删除直播间后,聊天室成员会被移出聊天室,直播间所有信息会被删除,用户不可再加入该直播间;
4、(1.0.3.Final版本新增功能)直播间增加persistent属性,默认为true,当设置为false时,直播间停播一个小时后,会被自动删除;
5、(1.0.3.Final版本新增功能)直播间支持点播类型。详情请查看直播间API文档。
  • 该服务目前提供的功能有
1、创建直播间;
2、修改直播间详情;
3、获取直播间详情;
4、获取直播间列表;
5、获取正在直播的直播间列表;
6、开启直播;
7、结束直播;
8、转让直播间;
9、删除直播间;
10、获取推拉流地址。

技术选择

主要组件

  • MySQL

数据库使用说明

  • 使用MySQL存储直播间信息
  • 建表SQL见 建表SQL

直播间API文档

直播间Demo服务端API文档

环信直播间文档

环信直播间集成文档

使用

  • 若初次使用环信,需前往 环信IM开发者注册页 注册成为环信IM开发者;

  • 注册成为环信IM开发者后,登录环信IM管理后台 创建一个应用(App),之后在App详情页可获得AppKey以及AppKey的clientId和clientSecret;

  • 成为环信IM开发者并成功注册App后,可在自己的服务器部署服务

    • 服务配置文件参考:application.properties

    • AppKey组成规则:${orgName}#${appName},拿到AppKey后可得到对应的orgName和appName;

    • 使用自己的orgName和appName以及AppKey的clientId和clientSecret修改配置文件,如下:

        easemob.live.rest.appkey.orgName=easemob-demo
        easemob.live.rest.appkey.appName=chatdemoui
        easemob.live.rest.appkey.clientId=xxxx
        easemob.live.rest.appkey.clientSecret=xxxx
    
    • 安装MySQL,并根据建表SQL创建数据库及表,设置服务配置文件:
        spring.datasource.url=jdbc:mysql://127.0.0.1:3306/app_server?useSSL=false&useUnicode=true&characterEncoding=utf8
        spring.datasource.username=root
        spring.datasource.password=123456
    
    • 如果需要生成声网CDN推拉流地址,需要设置服务配置文件如下:
        // agora CDN直播相关参数
        easemob.agora.cdn.appid=xxx
        easemob.agora.cdn.appcert=xxx
        easemob.agora.cdn.pushDomain=xxx
        easemob.agora.cdn.rtmpDomain=xxx
        easemob.agora.cdn.flvDomain=xxx
        easemob.agora.cdn.hlsDomain=xxx
        easemob.agora.cdn.pushPoint=xxx
        easemob.agora.cdn.expire=xxx
        // 用于生成防盗链推拉流地址的密钥,如果不需要防盗链可以不用此参数
        easemob.agora.cdn.pushSecretKey=
        easemob.agora.cdn.pullSecretKey=
    
    • 启动服务即可

Docker Deploy

# 打包
mvn clean install -DskipTests

# 进入Dockerfile目录
cd easemob-im-live-server/

# build docker image
mvn com.spotify:dockerfile-maven-plugin:build

# 至此服务的docker image已经build完成,启动服务需要先启动本地或docker的MySQL服务,并正确配置application-docker.properties中的mysql数据源地址。
# run docker service
docker run -p 8080:8080 easemob/easemob-im-live-server

模块说明

  • 提供直播间Rest Api服务,包含controller、model、service、exception等。
  • 直播间服务需调用环信REST接口,该模块提供调用环信REST服务,包含token、user、chatroom API的调用,封装了调用所需的RequestBody、ResponseBody。
  • 获取声网trc token。

环信文档

服务端REST文档

Release Note

1.0.4.Final

  • 增加声网server模块,获取声网token

1.0.3.Final

  • 直播间支持过期自动清理
  • 直播间支持点播功能
  • 直播间支持Docker部署
  • 直播间详情返回的成员列表过滤了owner

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published