通过阅读本文,您可以了解互动大班课服务端的集成操作。
操作步骤
- 获取AppID和AppKey。此处建议记录AppID和AppKey,方便后续操作中使用。
- 登录RTC控制台。
- 在左侧导航栏单击应用管理,进入应用管理页面。
- 在AppID/名称列获取AppID。
- 单击操作列的查询AppKey,获取AppKey。
说明 如果应用列表中没有您需要的应用,可以单击
创建应用,创建新的应用。具体操作,请参见
创建应用。
- 获取AccessKey。
说明 阿里云账号(主账号)的AccessKey泄露会威胁您所有资源的安全。从安全考虑,请创建RAM用户(子账号)并获取对应的AccessKey,用于访问您的云资源。
- 登录RAM控制台。
- 在左侧导航栏选择,进入用户页面。
- 单击创建用户,填写用户账号信息,选中Open API 调用访问创建用户。
- 单击确定。
- 重新返回用户页面。在用户登录名称/显示名称列下,单击目标RAM用户(子账号),进入管理页面。
- 单击权限管理,再单击添加权限。
- 选择AliyunRTCFullAccess(管理音视频通信的权限,可输入RTC进行搜索)。单击确定。
- 单击认证管理,在用户AccessKey区域单击创建AccessKey。
说明
- 首次创建时需填写手机验证码。
- 如果AccessKey泄露或丢失,则需要创建新的AccessKey,最多可以创建2个AccessKey。
- 获取AccessKey ID和AccessKey Secret。
创建AccessKey完成后,会弹出
创建AccessKey对话框,包含AccessKey ID和AccessKey Secret信息。此处建议记录AccessKey ID和AccessKey Secret,方便后续操作中使用。
- 下载并解压Demo,更多信息,请参见Demo源码下载。
说明
- 源码压缩文件内分为Android、iOS、Electron、Server四端文件。
- 如果GitHub代码库下载缓慢,可安装加速插件等方式加速下载。
- 使用IntelliJ IDEA打开Demo工程(包含pom.xml的目录)。
- 修改配置文件application.properties。
##服务启动 端口号;
server.port=8080
server.tomcat.accesslog.buffered=false
##日志文件夹配置,可以根据自己的实际情况进行配置;
server.tomcat.accesslog.directory=/home/alivcrtc/liveClassJar
server.tomcat.accesslog.enabled=true
server.servlet.context-path=/interactive-live-class/
## 日志配置,可以根据需要进行修改;
logging.level.com.live.dao=debug
logging.level.com.live.dao.user=debug
logging.level.com.alivc.vod.dao=debug
logging.file:my.log
logging.pattern.file=%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread]
%logger{15}.%M : %msg%n
logging.pattern.console=%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread]
%logger{15}.%M - %msg%n
##阿里云账号AK,用于服务端调用OpenAPI时候使用;
accessKeyID=*****
accessKeySecret=*****
##RTCappid 和 appkey 在开通RTC服务和创建应用时可以获取;
rtc.liveclass.appId =
*****
rtc.liveclass.appKey = *****
rtc.gslb = https://rgslb.rtc.aliyuncs.com(请不要修改)
##每个房间通话限时 : <0 不限制,单位:分钟;
durationlimit=-1
#------------ Redis -----------------
spring.redis.host=****
#spring.redis.host=localhost
# Redis 服务器连接端口
spring.redis.port=6379
# Redis 数据库索引(默认为 0)
spring.redis.database=0
# Redis 服务器连接密码(默认为空)
spring.redis.password=****
#连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
## 内部消息系统,在开通互动直播时获取;
IM_AccessKeyId = ***
IM_AccessKeySecret = ***
IM_AppId = ***
- 编译运行。
- 方法一:
在IntelliJ IDEA中运行Application.java。
- 方法二:
通过Maven命令进行编译打包成jar,然后通过java -jar运行,具体的命令如下所示:
mvn clean package -Dmaven.test.skip
java -jar target/live-class-api.jar
- 获取服务URL。此处建议记录一下,方便后续其它端集成操作中使用。
服务URL结构为http://{ip}:{port}/{contextPath}/{api},详细说明如下所示:
- ip:运行server的服务器或者本地PC的IP地址。
- port:服务启动端口号,即步骤5中
server.port
的值。
- contextPath:步骤5中
server.servlet.context-path
的值。
- api:详情请参见API说明。
例如,服务URL的地址为http://127.0.0.1:8080/interactive-live-class/getRtcAuth。
Demo目录结构说明
此Demo为标准的通过SpringBoot框架对外提供REST接口的项目,也是一个标准的Maven项目。项目结构如下所示:
文件名 |
说明 |
\java\com\alivc\base |
基础工具类。 |
\java\com\alivc\liveclass |
业务逻辑包,主要包含4个Package:
- controller:对外提供的REST接口。
- model:业务封装类。
- service:和Redis交互的主要业务逻辑。
- utils:Redis配置。
|
resources |
SpringBoot工程的配置文件。 |
webapp |
webapp模块。 |
API说明
RTC相关:
getRtcAuth:下发RTC相关鉴权信息。
IM相关:
- login:下发IM相关鉴权信息给客户端(客户端登录IM系统时需要用到)。
- createGroup:创建一个群组(本项目设计为一个课堂对应一个群组)。
- getGroup:通过课堂ID获取群组ID。
- leaveChannel:离开课堂。
- destoryChannel:删除课堂。
- joinChannel:加入课堂。
- sendMsg:通过服务端发送消息。
- callback:接收IM服务的回调信息。
关于接口的详细信息,请参见Demo中README.md。