AUI Kits语聊房AppServer提供了登录服务和语聊房见管理服务等后台服务,助力业务创新快速上线。
项目原理
AppServer的作用
集成方基于AUI Kits框架快速搭语聊房服务时,场景SDK需要对接实时音视频(用于观众连麦场景)和IM服务(用于互动消息)等产品的能力。AppServer将这上述产品的能力进行封装,提供一套标准化的HTTP接口供场景SDK使用,降低了集成方的开发成本。
AppServer属于客户自行部署、维护的范畴。
项目框架
基于主流的Java8+Springboot2搭建框架。
基于Mybatis plus作为Repository。
基于SpringSecurity+JWT来实现权限控制。
项目部署
前提条件
已完成控制台配置相关操作。
环境中已安装Java8。
创建数据库
以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
正确创建后有如下的表。
通过源码部署
本示例主要通过源码构建并部署AppServer。
在首次部署服务器时,请务必编辑代码文件code/src/main/java/com/aliyuncs/aui/common/utils/JwtUtils.java
,给属性SECRET随机设置一个字符串。
项目参数配置
下载语聊房源代码到服务器。
打开源码
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*********
连麦应用ID和AppKey,请参见前置准备中的创建实时音视频应用
面向服务的鉴权配置
本项目需要先调用/login
接口获取鉴权的token,将token放到请求头中,然后再调用其它接口。但是本项目token的生成方式较为简易,仅适用于测试,用户基于Demo开发时需要自行调整鉴权策略。用户可按自身业务需求实现鉴权配置,包括token的生成算法也可以自定义,要确保生成及检验token使用相同的算法。
鉴权token的相关代码文件见code/src/main/java/com/aliyuncs/aui/common/utils/JwtUtils.java
。
/login
接口说明详见登录的详细接口定义。
项目打包和运行
打包
使用IDEA自带的Maven打包,jar在target目录下。
在
Server\Java\code
路径下使用以下命令执行打包操作。mvn package -DskipTests
将
target
目录下的jar包发送到服务器。scp xxx.jar root@ip:/root
运行项目
在jar包所在目录下打开终端。
终端运行,日志打印到终端。
java -jar ***.jar
后台运行,将日志打印输出到nohup.out文件。
nohup java -jar ***.jar &
查看是否启动成功。
访问对应接口,显示如下,说明AppServer启动成功。