服务端配置与运行

AUI Kits语聊房AppServer提供了登录服务和语聊房见管理服务等后台服务,助力业务创新快速上线。

项目原理

AppServer的作用

image

集成方基于AUI Kits框架快速搭语聊房服务时,场景SDK需要对接实时音视频(用于观众连麦场景)和IM服务(用于互动消息)等产品的能力。AppServer将这上述产品的能力进行封装,提供一套标准化的HTTP接口供场景SDK使用,降低了集成方的开发成本。

说明

AppServer属于客户自行部署、维护的范畴。

项目框架

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

  • 基于Mybatis plus作为Repository。

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

项目部署

前提条件

创建数据库

以MySQL为例,手工创建数据库,并手动执行如下SQL语句。

CREATE TABLE `room_infos` (
  `id` char(32) NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `title` varchar(256) DEFAULT NULL,
  `extends` mediumtext,
  `status` tinyint DEFAULT NULL,
  `chat_id` char(32) DEFAULT NULL,
  `notice` varchar(256) DEFAULT NULL,
  `cover_url` varchar(256) DEFAULT NULL,
  `anchor_id` varchar(256) DEFAULT NULL,
  `anchor_nick` varchar(256) DEFAULT NULL,
  `meeting_info` mediumtext,
  `show_code` int NOT NULL,
  `started_at` datetime DEFAULT NULL,
  `stopped_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_create_at` (`created_at`),
  UNIQUE KEY `udx_show_code`(`show_code`)
) ENGINE=InnoDB

正确创建后有如下的表。

image

通过源码部署

本示例主要通过源码构建并部署AppServer。

重要

在首次部署服务器时,请务必编辑代码文件code/src/main/java/com/aliyuncs/aui/common/utils/JwtUtils.java,给属性SECRET随机设置一个字符串。

项目参数配置

  1. 下载语聊房源代码到服务器。

  2. 打开源码Server\Java\code\src\main\resources目录下的application.yml文件,配置相关参数。

    参数配置信息

    说明

     #配置DB地址、用户名及密码
        url: jdbc:mysql://*****:3306/****?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
        username: "r*****"
        password: "p*****"
    • url:MySQL数据库服务器的主机名或IP地址/数据库的名称。

    • username:数据库用户名。

    • password:数据库密码。

    # pop配置。需要配置账号的AccessKey ID和AccessKey Secret,用于调用IM及live相关服务
     biz:
      openapi:
        access:
          key: "*********"
          secret: "*********"

    调用阿里云IM及Live相关服务API时,您需要使用AccessKey完成身份验证。AccessKey包括AccessKey ID和AccessKey Secret。具体如下:

    • AccessKey ID:用于标识用户。

    • AccessKey Secret:用于验证用户的密钥。AccessKey Secret必须保密。

    更多信息,请参见创建AccessKey

    # IM相关配置 
      new_im:
        appId: "********"
        appKey: "********"
        appSign: "********"

    直播互动消息应用ID,请参见前置准备中的创建互动消息应用获取。

     # 连麦相关配置
      live_mic:
        app_id: 7c61********
        app_key: c461b*********

    连麦应用IDAppKey,请参见前置准备中的创建实时音视频应用

面向服务的鉴权配置

本项目需要先调用/login接口获取鉴权的token,将token放到请求头中,然后再调用其它接口。但是本项目token的生成方式较为简易,仅适用于测试,用户基于Demo开发时需要自行调整鉴权策略。用户可按自身业务需求实现鉴权配置,包括token的生成算法也可以自定义,要确保生成及检验token使用相同的算法。

说明

鉴权token的相关代码文件见code/src/main/java/com/aliyuncs/aui/common/utils/JwtUtils.java

image

/login接口说明详见登录的详细接口定义

项目打包和运行

打包

  1. 使用IDEA自带的Maven打包,jar在target目录下。

  2. Server\Java\code路径下使用以下命令执行打包操作。

    mvn package -DskipTests
  3. target目录下的jar包发送到服务器。

    scp xxx.jar root@ip:/root

运行项目

在jar包所在目录下打开终端。

  1. 终端运行,日志打印到终端。

    java -jar ***.jar
  2. 后台运行,将日志打印输出到nohup.out文件。

    nohup java -jar ***.jar &
  3. 查看是否启动成功。

    访问对应接口,显示如下,说明AppServer启动成功。

    image