文档

服务端集成

更新时间:

AUI Kits互动直播AppServer提供了登录服务和直播间管理服务等后台服务,通过与AUI Kits互动直播场景SDK搭配使用可以快速实现互动直播应用,助力业务创新快速上线。

前提条件

  • 已完成前置准备相关操作。详情请参见前置准备

  • 已申请创建互动消息应用,并获得AppID、AppKey、AppSign等。详情请参见前置准备

  • 如果您需要通过源码构建并部署AppServer,请确保环境中已安装jdk8。

  • 使用该项目,您需要获取以下产品的权限:

    云产品

    权限策略

    授权方式

    视频直播

    AliyunLiveFullAccess

    创建RAM用户并授权

    视频点播

    AliyunVODFullAccess

    创建RAM用户并授权

通过源码构建及部署

根据源码的说明文档配置并执行,源码地址:Java

项目部署和体验

技术选型

  • 基于主流的Java8+Springboot2搭建框架。

  • 基于Mybatis plus作为Repository。

  • 基于SpringSecurity+JWT 来实现权限控制。

部署

  • 安装了Java8之后即可在各个ECS或容器上运行。

  • 如果熟悉函数计算,也可以使用Serverless平台快速部署。

配置application.yml文件

# 监听端口
server:
  port: 8080

# mysql相关配置
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.cj.jdbc.Driver
    # 连接信息
    url: jdbc:mysql://*****:3306/****?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: r*****
    password: p*****
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd'T'HH:mm:ss
    default-property-inclusion: non_null

#mybatis-plus相关配置。一般不用调整
mybatis-plus:
  #实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.aliyuncs.aui.entity
  configuration:
    # 是否输出sql语句,本地开发时建议打开,上线前去掉
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    # sql执行超时时间
    default-statement-timeout: 10
biz:
  # pop配置。需要配置账号的ak及as,用于调用IM及VOD相关服务
  openapi:
    access:
      key: daeewe*****
      secret: we2wewe******
  # 互动消息服务(旧)的应用Id,如果你的项目需要使用老的互动消息服务,请联系我们
  live_im:
      app_id: TY3****
  # 直播推拉流配置
  live_stream:
      #推流域名
      push_url: push.*****.vip
      #拉流域名
      pull_url: pull.*****.vip
      #推流对应的authkey
      push_auth_key: zJl4******
      #拉流对应的authkey
      pull_auth_key: mDZs********
      app_name: live
      auth_expires: 604800
  # 连麦应用信息
  live_mic:
      app_id: 7c61********
      app_key: c461b*********
  # 互动消息服务(新)应用信息,在你申请开通应用成功后,可以在登记的邮箱里收到appId、appKey和appSign
  new_im:
    	appId: "0c8xxxxx"
    	appKey: "586fxxxxxx"
    	appSign:	"232sfxxxxxx"
  # 推流状态回调的authKey
  live_callback:
      auth_key: avdsd*******
      
# 配置允许跨域的请求域名
http:
  cors:
    host: "*"

数据库配置

当配置好DB后,手工创建数据库表。以MySQL为例,建表语句为:

CREATE TABLE `room_infos` (
  `id` varchar(256) NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `title` varchar(256) DEFAULT NULL,
  `anchor` varchar(256) DEFAULT NULL,
  `extends` mediumtext,
  `status` bigint DEFAULT NULL,
  `mode` bigint DEFAULT NULL,
  `chat_id` varchar(256) DEFAULT NULL,
  `pk_id` varchar(256) DEFAULT NULL,
  `notice` varchar(256) DEFAULT NULL,
  `meeting_id` varchar(256) DEFAULT NULL,
  `cover_url` varchar(256) DEFAULT NULL,
  `anchor_id` varchar(256) DEFAULT NULL,
  `anchor_nick` varchar(256) DEFAULT NULL,
  `vod_id` varchar(256) DEFAULT NULL,
  `meeting_info` mediumtext,
  `started_at` datetime DEFAULT NULL,
  `stopped_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_create_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

面向服务的鉴权配置

需要先调用/login接口获取鉴权的token, 将token放到请求头中,然后再调用其它接口。流程见:

image

/login接口说明

该接口客户可按自身业务需求实现,包括token的生成算法也可以自定义,不过要确保生成及检验token使用相同的算法。

使用说明

  • 请求协议: http/https

  • 请求Path:/login

  • 是否需要授权:否

  • 请求Method:POST

  • 请求Content-Type:JSON

请求参数

名称

类型

是否必填

示例值

描述

username

String

usernamexxx

用户名

password

String

passwordxxxx

密码

返回数据

名称

类型

示例值

描述

code

Integer

200

业务响应码。参考HTTP响应码

expire

String

2023-02-28T14:38:06+08:00

过期时间。使用UTC时间格式

token

String

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9***

授权凭证。默认使用jwt生成

示例

请求示例

{
"username":"usernamexxx",
"password":"passwordxxxx"
}

正常返回示例

{
"code": 200,
"expire": "2023-02-28T14:38:06+08:00",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2Nzc1NjYyODYsImlkIjoieXl5eSIsIm9yaWdfaWF0IjoxNjc3NDc5OD****.xxxxxx"
}
  • 本页导读 (1)
文档反馈