[*] init
This commit is contained in:
69
.gitignore
vendored
69
.gitignore
vendored
@@ -1,63 +1,10 @@
|
||||
.metadata
|
||||
bin/
|
||||
tmp/
|
||||
*.tmp
|
||||
*.bak
|
||||
*.swp
|
||||
*~.nib
|
||||
local.properties
|
||||
.settings
|
||||
.loadpath
|
||||
.recommenders
|
||||
.classpath
|
||||
.project
|
||||
.class
|
||||
*.log
|
||||
*.project
|
||||
*.settings
|
||||
*.classpath
|
||||
*.factorypath
|
||||
|
||||
# External tool builders
|
||||
.externalToolBuilders/
|
||||
|
||||
# Locally stored "Eclipse launch configurations"
|
||||
*.launch
|
||||
|
||||
# PyDev specific (Python IDE for Eclipse)
|
||||
*.pydevproject
|
||||
|
||||
# CDT-specific (C/C++ Development Tooling)
|
||||
.cproject
|
||||
|
||||
# CDT- autotools
|
||||
.autotools
|
||||
|
||||
# Java annotation processor (APT)
|
||||
.factorypath
|
||||
|
||||
# PDT-specific (PHP Development Tools)
|
||||
.buildpath
|
||||
|
||||
# sbteclipse plugin
|
||||
.target
|
||||
|
||||
# Tern plugin
|
||||
.tern-project
|
||||
|
||||
# TeXlipse plugin
|
||||
.texlipse
|
||||
|
||||
# STS (Spring Tool Suite)
|
||||
.springBeans
|
||||
|
||||
# Code Recommenders
|
||||
.recommenders/
|
||||
|
||||
# Annotation Processing
|
||||
logs/
|
||||
target/
|
||||
.apt_generated/
|
||||
.apt_generated_test/
|
||||
|
||||
# Scala IDE specific (Scala & Java development for Eclipse)
|
||||
.cache-main
|
||||
.scala_dependencies
|
||||
.worksheet
|
||||
|
||||
# Uncomment this line if you wish to ignore the project description file.
|
||||
# Typically, this file would be tracked if it contains build/dependency configurations:
|
||||
#.project
|
||||
.apt_generated_tests/
|
||||
71
README.md
Normal file
71
README.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# 桃夭
|
||||
|
||||
基于WebRTC实现信令服务,实现Mesh、MCU和SFU三种媒体通信架构,支持直播会议两种场景。
|
||||
|
||||
## 模块
|
||||
|
||||
|模块|名称|描述|
|
||||
|:--|:--|:--|
|
||||
|taoyao|桃夭|桃之夭夭灼灼其华|
|
||||
|taoyao-nat|内网穿透|STUN/TURN暂不实现(公共服务或者搭建coturn服务)|
|
||||
|taoyao-live|直播|直播、连麦|
|
||||
|taoyao-model|模型|数据模型|
|
||||
|taoyao-media|媒体|录制、视频(美颜、AI识别)、音频(混音、变声)|
|
||||
|taoyao-client|终端|帐号、摄像头|
|
||||
|taoyao-signal|信令|信令服务|
|
||||
|taoyao-server|服务|启动服务|
|
||||
|taoyao-meeting|会议|会议模式、广播模式、单人对讲|
|
||||
|taoyao-webrtc|WebRTC模块||
|
||||
|taoyao-webrtc-sfu|WebRTC SFU架构实现||
|
||||
|taoyao-webrtc-mcu|WebRTC MCU架构实现||
|
||||
|taoyao-webrtc-mesh|WebRTC MESH架构实现||
|
||||
|taoyao-webrtc-native|WebRTC底层实现|MCU/SFU底层媒体服务|
|
||||
|
||||
## STUN/TURN公共服务
|
||||
|
||||
```
|
||||
stun:stun1.l.google.com:19302
|
||||
stun:stun2.l.google.com:19302
|
||||
stun:stun3.l.google.com:19302
|
||||
stun:stun4.l.google.com:19302
|
||||
stun:stun.stunprotocol.org:3478
|
||||
```
|
||||
|
||||
## 终端
|
||||
|
||||
帐号可以管理媒体,摄像头只能被动管理。
|
||||
|
||||
### 功能
|
||||
|
||||
|功能|场景|描述|帐号|摄像头|
|
||||
注册
|
||||
注销
|
||||
心跳
|
||||
推流
|
||||
拉流
|
||||
邀请
|
||||
踢出
|
||||
绑定设备
|
||||
解绑设备
|
||||
进入会议:没有自动创建
|
||||
关闭会议:
|
||||
订阅
|
||||
取消订阅
|
||||
暂停推流
|
||||
恢复推流
|
||||
掉线重连
|
||||
|
||||
### 信息
|
||||
|
||||
IP
|
||||
MAC
|
||||
信号
|
||||
电量
|
||||
通话状态
|
||||
录制状态
|
||||
|
||||
## 直播
|
||||
|
||||
## 会议
|
||||
|
||||
##
|
||||
58
docs/assembly/dev.xml
Normal file
58
docs/assembly/dev.xml
Normal file
@@ -0,0 +1,58 @@
|
||||
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
|
||||
|
||||
<id>dev</id>
|
||||
|
||||
<formats>
|
||||
<format>dir</format>
|
||||
</formats>
|
||||
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
|
||||
<fileSets>
|
||||
<fileSet>
|
||||
<directory>${system.maven.basedir}/docs</directory>
|
||||
<outputDirectory>./</outputDirectory>
|
||||
<includes>
|
||||
<include>README.md</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<directory>${system.maven.basedir}/docs/bin</directory>
|
||||
<outputDirectory>bin</outputDirectory>
|
||||
<fileMode>0755</fileMode>
|
||||
<filtered>true</filtered>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<directory>src/main/resources</directory>
|
||||
<outputDirectory>config</outputDirectory>
|
||||
<filtered>true</filtered>
|
||||
<includes>
|
||||
<include>*.yml</include>
|
||||
<include>*.properties</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<directory>src/main/resources</directory>
|
||||
<outputDirectory>config</outputDirectory>
|
||||
<includes>
|
||||
<include>*.jks</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<directory>target</directory>
|
||||
<outputDirectory>logs</outputDirectory>
|
||||
<excludes>
|
||||
<exclude>**/*</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
|
||||
<dependencySets>
|
||||
<dependencySet>
|
||||
<outputDirectory>lib</outputDirectory>
|
||||
</dependencySet>
|
||||
</dependencySets>
|
||||
|
||||
</assembly>
|
||||
58
docs/assembly/release.xml
Normal file
58
docs/assembly/release.xml
Normal file
@@ -0,0 +1,58 @@
|
||||
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
|
||||
|
||||
<id>release</id>
|
||||
|
||||
<formats>
|
||||
<format>zip</format>
|
||||
</formats>
|
||||
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
|
||||
<fileSets>
|
||||
<fileSet>
|
||||
<directory>${system.maven.basedir}/docs</directory>
|
||||
<outputDirectory>./</outputDirectory>
|
||||
<includes>
|
||||
<include>README.md</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<directory>${system.maven.basedir}/docs/bin</directory>
|
||||
<outputDirectory>bin</outputDirectory>
|
||||
<fileMode>0755</fileMode>
|
||||
<filtered>true</filtered>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<directory>src/main/resources</directory>
|
||||
<outputDirectory>config</outputDirectory>
|
||||
<filtered>true</filtered>
|
||||
<includes>
|
||||
<include>*.yml</include>
|
||||
<include>*.properties</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<directory>src/main/resources</directory>
|
||||
<outputDirectory>config</outputDirectory>
|
||||
<includes>
|
||||
<include>*.jks</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<directory>target</directory>
|
||||
<outputDirectory>logs</outputDirectory>
|
||||
<excludes>
|
||||
<exclude>**/*</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
|
||||
<dependencySets>
|
||||
<dependencySet>
|
||||
<outputDirectory>lib</outputDirectory>
|
||||
</dependencySet>
|
||||
</dependencySets>
|
||||
|
||||
</assembly>
|
||||
58
docs/assembly/test.xml
Normal file
58
docs/assembly/test.xml
Normal file
@@ -0,0 +1,58 @@
|
||||
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
|
||||
|
||||
<id>test</id>
|
||||
|
||||
<formats>
|
||||
<format>dir</format>
|
||||
</formats>
|
||||
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
|
||||
<fileSets>
|
||||
<fileSet>
|
||||
<directory>${system.maven.basedir}/docs</directory>
|
||||
<outputDirectory>./</outputDirectory>
|
||||
<includes>
|
||||
<include>README.md</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<directory>${system.maven.basedir}/docs/bin</directory>
|
||||
<outputDirectory>bin</outputDirectory>
|
||||
<fileMode>0755</fileMode>
|
||||
<filtered>true</filtered>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<directory>src/main/resources</directory>
|
||||
<outputDirectory>config</outputDirectory>
|
||||
<filtered>true</filtered>
|
||||
<includes>
|
||||
<include>*.yml</include>
|
||||
<include>*.properties</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<directory>src/main/resources</directory>
|
||||
<outputDirectory>config</outputDirectory>
|
||||
<includes>
|
||||
<include>*.jks</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<directory>target</directory>
|
||||
<outputDirectory>logs</outputDirectory>
|
||||
<excludes>
|
||||
<exclude>**/*</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
|
||||
<dependencySets>
|
||||
<dependencySet>
|
||||
<outputDirectory>lib</outputDirectory>
|
||||
</dependencySet>
|
||||
</dependencySets>
|
||||
|
||||
</assembly>
|
||||
36
docs/bin/deploy.sh
Normal file
36
docs/bin/deploy.sh
Normal file
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 进入目录
|
||||
base=$(readlink -f $(dirname $0))
|
||||
cd $base
|
||||
echo "环境目录:$base"
|
||||
echo "当前目录:$(pwd)"
|
||||
|
||||
# 更新代码
|
||||
if [ -z $gited ]; then
|
||||
echo "更新代码:${project.artifactId}-${project.version}"
|
||||
git pull
|
||||
fi
|
||||
|
||||
# 编译代码
|
||||
if [ -z $mvned ]; then
|
||||
echo "编译代码:${project.artifactId}-${project.version}"
|
||||
mvn clean package install -pl "${project.groupId}:${project.artifactId}" -am -D skipTests -P ${env}
|
||||
fi
|
||||
|
||||
# 删除文件:注意不要删除日志
|
||||
rm -rf $base/../deploy/${project.artifactId}/bin
|
||||
rm -rf $base/../deploy/${project.artifactId}/lib
|
||||
rm -rf $base/../deploy/${project.artifactId}/config
|
||||
# 运行目录
|
||||
echo "拷贝文件:${project.artifactId}-${project.version}"
|
||||
if [ ! -d "$base/../deploy/${project.artifactId}" ]; then
|
||||
mkdir -p $base/../deploy/${project.artifactId}
|
||||
fi
|
||||
# 拷贝文件
|
||||
cp -rf ${project.basedir}/target/${project.artifactId}-${project.version}/* $base/../deploy/${project.artifactId}
|
||||
cp -rf ${project.basedir}/target/${project.artifactId}-${project.version}.jar $base/../deploy/${project.artifactId}
|
||||
|
||||
# 启动服务
|
||||
cd $base/../deploy/${project.artifactId}
|
||||
sh bin/startup.sh
|
||||
46
docs/bin/startup.sh
Normal file
46
docs/bin/startup.sh
Normal file
@@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 启动目录
|
||||
bin=$(readlink -f $(dirname $0))
|
||||
base=${bin%/*}
|
||||
cd $base
|
||||
echo "启动目录:$base"
|
||||
|
||||
# Java运行环境
|
||||
JAVA=$(which java)
|
||||
if [ -z "$JAVA" ] ; then
|
||||
echo "必须安装${java.version}+JDK"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 结束任务
|
||||
if [ ! -f "/.dockerenv" ]; then
|
||||
sh bin/stop.sh
|
||||
fi
|
||||
|
||||
# 启动参数
|
||||
JAVA_OPTS_GC="-XX:+UseG1GC -Xlog:gc:./logs/gc.log:time,level"
|
||||
JAVA_OPTS_MEM="-server ${system.maven.jvm.mem}"
|
||||
JAVA_OPTS_EXT="-Dfile.encoding=${system.maven.encoding} -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true"
|
||||
JAVA_OPTS_APP="-Dspring.profiles.active=${profile}"
|
||||
JAVA_OPTS="$JAVA_OPTS_MEM $JAVA_OPTS_EXT $JAVA_OPTS_APP ${system.maven.jvm.arg}"
|
||||
echo "启动参数:$JAVA_OPTS"
|
||||
|
||||
# 启动应用
|
||||
echo "启动应用:${project.artifactId}-${project.version}"
|
||||
if [ ! -f "/.dockerenv" ]; then
|
||||
# 其他启动
|
||||
nohup $JAVA $JAVA_OPTS -jar $base/lib/${project.artifactId}-${project.version}.jar > /dev/null 2>&1 &
|
||||
else
|
||||
# 使用docker启动:后台启动不能查看控制台的信息
|
||||
$JAVA $JAVA_OPTS -jar $base/lib/${project.artifactId}-${project.version}.jar
|
||||
fi
|
||||
|
||||
# 等待任务
|
||||
if [ ! -f "/.dockerenv" ]; then
|
||||
sh bin/wait.sh
|
||||
else
|
||||
echo -e "\033[32m启动成功:${project.artifactId}-${project.version}\033[0m"
|
||||
fi
|
||||
|
||||
echo "--------------------------------"
|
||||
24
docs/bin/stop.sh
Normal file
24
docs/bin/stop.sh
Normal file
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 结束任务
|
||||
killIndex=0
|
||||
processId=$(ps -aux | grep "${project.artifactId}" | grep java | awk '{print $2}')
|
||||
if [ ! -z "$processId" ]; then
|
||||
echo "关闭应用:${project.artifactId}-${project.version} - $processId"
|
||||
while [ ! -z "$processId" ]
|
||||
do
|
||||
echo -n "."
|
||||
if [ $killIndex -le 0 ]; then
|
||||
# 优雅关机
|
||||
kill -15 $processId
|
||||
elif [ $killIndex -ge 10 ]; then
|
||||
echo -n '强制关闭'
|
||||
# 强制关机
|
||||
kill -9 $processId
|
||||
fi
|
||||
sleep 1
|
||||
killIndex=$((killIndex+1))
|
||||
processId=$(ps -aux | grep "${project.artifactId}" | grep java | awk '{print $2}')
|
||||
done
|
||||
echo ""
|
||||
fi
|
||||
33
docs/bin/wait.sh
Normal file
33
docs/bin/wait.sh
Normal file
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 等待任务
|
||||
startTime=$(date +%s)
|
||||
processId=$(ps -aux | grep "${project.artifactId}" | grep java | awk '{print $2}')
|
||||
if [ ! -z "$processId" ]; then
|
||||
waitIndex=0
|
||||
processPortNumber=$(netstat -anop | grep $processId | grep LISTEN | wc -l)
|
||||
while [ $waitIndex -le 120 ] && [ ! -z "$processId" ] && [ $processPortNumber -lt 1 ]
|
||||
do
|
||||
sleep 1
|
||||
waitIndex=$((waitIndex+1))
|
||||
processId=$(ps -aux | grep "${project.artifactId}" | grep java | awk '{print $2}')
|
||||
if [ ! -z "$processId" ]; then
|
||||
processPortNumber=$(netstat -anop | grep $processId | grep LISTEN | wc -l)
|
||||
else
|
||||
processPortNumber=0
|
||||
fi
|
||||
echo -n "."
|
||||
done
|
||||
echo ""
|
||||
fi
|
||||
if [ $processPortNumber -lt 1 ]; then
|
||||
echo -e "\033[31m启动失败:${project.artifactId}-${project.version}\033[0m"
|
||||
sh bin/stop.sh
|
||||
exit 0
|
||||
else
|
||||
finishTime=$(date +%s)
|
||||
processTime=$((finishTime-startTime))
|
||||
echo -e "\033[32m启动成功:${project.artifactId}-${project.version} - $processId\033[0m"
|
||||
echo "启动端口:$(netstat -anop | grep $processId | grep LISTEN | awk '{print $4}')"
|
||||
echo "启动耗时:$processTime S"
|
||||
fi
|
||||
349
pom.xml
Normal file
349
pom.xml
Normal file
@@ -0,0 +1,349 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.7.5</version>
|
||||
<relativePath />
|
||||
</parent>
|
||||
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<url>https://gitee.com/acgist/taoyao</url>
|
||||
<name>桃夭</name>
|
||||
<description>基于WebRTC实现信令服务,实现Mesh、MCU和SFU三种媒体通信架构,支持直播会议两种场景。</description>
|
||||
<inceptionYear>2022</inceptionYear>
|
||||
|
||||
<properties>
|
||||
<!-- 版本 -->
|
||||
<java.version>17</java.version>
|
||||
<lombok.version>1.18.24</lombok.version>
|
||||
<springfox.version>3.0.0</springfox.version>
|
||||
<mapstruct.version>1.5.3.Final</mapstruct.version>
|
||||
<collections4.version>4.4</collections4.version>
|
||||
<!-- 配置 -->
|
||||
<system.maven.basedir>${project.basedir}</system.maven.basedir>
|
||||
<system.maven.encoding>UTF-8</system.maven.encoding>
|
||||
<system.maven.skip.assembly>true</system.maven.skip.assembly>
|
||||
</properties>
|
||||
|
||||
<modules>
|
||||
<module>taoyao-nat</module>
|
||||
<module>taoyao-live</module>
|
||||
<module>taoyao-model</module>
|
||||
<module>taoyao-media</module>
|
||||
<module>taoyao-client</module>
|
||||
<module>taoyao-signal</module>
|
||||
<module>taoyao-webrtc</module>
|
||||
<module>taoyao-server</module>
|
||||
<module>taoyao-meeting</module>
|
||||
</modules>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-collections4</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-nat</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-live</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-model</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-media</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-client</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-signal</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-server</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-meeting</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc-sfu</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc-mcu</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc-mesh</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc-native</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<!-- mapstruct -->
|
||||
<dependency>
|
||||
<groupId>org.mapstruct</groupId>
|
||||
<artifactId>mapstruct</artifactId>
|
||||
<version>${mapstruct.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mapstruct</groupId>
|
||||
<artifactId>mapstruct-processor</artifactId>
|
||||
<version>${mapstruct.version}</version>
|
||||
</dependency>
|
||||
<!-- lombok -->
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>${lombok.version}</version>
|
||||
</dependency>
|
||||
<!-- 集合工具 -->
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-collections4</artifactId>
|
||||
<version>${collections4.version}</version>
|
||||
</dependency>
|
||||
<!-- 文档 -->
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-boot-starter</artifactId>
|
||||
<version>${springfox.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<includes>
|
||||
<include>**/*.yml</include>
|
||||
<include>**/*.properties</include>
|
||||
</includes>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<includes>
|
||||
<!-- 匹配所有文件:**/* -->
|
||||
<!-- 匹配所有带有后缀文件:**/*.* -->
|
||||
<include>**/*.*</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>**/*.yml</exclude>
|
||||
<exclude>**/*.properties</exclude>
|
||||
</excludes>
|
||||
<filtering>false</filtering>
|
||||
</resource>
|
||||
<!-- 开源协议 -->
|
||||
<resource>
|
||||
<directory>./</directory>
|
||||
<filtering>false</filtering>
|
||||
<targetPath>META-INF/</targetPath>
|
||||
<includes>
|
||||
<include>LICENSE</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<source>${java.version}</source>
|
||||
<target>${java.version}</target>
|
||||
<encoding>${system.maven.encoding}</encoding>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<configuration>
|
||||
<!-- Jar配置独立config目录 -->
|
||||
<excludes>
|
||||
<exclude>*.jks</exclude>
|
||||
<exclude>*.yml</exclude>
|
||||
<exclude>*.properties</exclude>
|
||||
</excludes>
|
||||
<archive>
|
||||
<manifestEntries>
|
||||
<!-- 配置文件 -->
|
||||
<Class-Path>../config/</Class-Path>
|
||||
</manifestEntries>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>assembly</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<attach>false</attach>
|
||||
<skipAssembly>${system.maven.skip.assembly}</skipAssembly>
|
||||
<appendAssemblyId>false</appendAssemblyId>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>dev</id>
|
||||
<activation>
|
||||
<activeByDefault>true</activeByDefault>
|
||||
</activation>
|
||||
<properties>
|
||||
<profile>dev</profile>
|
||||
<system.maven.jvm.arg></system.maven.jvm.arg>
|
||||
<system.maven.jvm.mem>-Xms512M -Xmx1024M -XX:NewRatio=1 -XX:SurvivorRatio=2</system.maven.jvm.mem>
|
||||
</properties>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<configuration>
|
||||
<descriptors>
|
||||
<descriptor>${system.maven.basedir}/docs/assembly/dev.xml</descriptor>
|
||||
</descriptors>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>test</id>
|
||||
<properties>
|
||||
<profile>test</profile>
|
||||
<system.maven.jvm.arg></system.maven.jvm.arg>
|
||||
<system.maven.jvm.mem>-Xms512M -Xmx1024M -XX:NewRatio=1 -XX:SurvivorRatio=2</system.maven.jvm.mem>
|
||||
</properties>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<configuration>
|
||||
<descriptors>
|
||||
<descriptor>${system.maven.basedir}/docs/assembly/test.xml</descriptor>
|
||||
</descriptors>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-boot-starter</artifactId>
|
||||
<version>${springfox.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>release</id>
|
||||
<properties>
|
||||
<profile>release</profile>
|
||||
<system.maven.jvm.arg>-Dtaoyao.password=123456</system.maven.jvm.arg>
|
||||
<system.maven.jvm.mem>-Xms2048M -Xmx4096M -XX:NewRatio=1 -XX:SurvivorRatio=2</system.maven.jvm.mem>
|
||||
</properties>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<configuration>
|
||||
<descriptors>
|
||||
<descriptor>${system.maven.basedir}/docs/assembly/release.xml</descriptor>
|
||||
</descriptors>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-boot-starter</artifactId>
|
||||
<version>${springfox.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
</project>
|
||||
21
taoyao-live/pom.xml
Normal file
21
taoyao-live/pom.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>taoyao-live</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>直播</name>
|
||||
<description>直播、连麦</description>
|
||||
|
||||
<dependencies></dependencies>
|
||||
|
||||
</project>
|
||||
21
taoyao-media/pom.xml
Normal file
21
taoyao-media/pom.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>taoyao-media</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>媒体</name>
|
||||
<description>录制、视频(美颜、AI识别)、音频(混音、变声)</description>
|
||||
|
||||
<dependencies></dependencies>
|
||||
|
||||
</project>
|
||||
21
taoyao-meeting/pom.xml
Normal file
21
taoyao-meeting/pom.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>taoyao-meeting</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>会议</name>
|
||||
<description>会议模式、广播模式、单人对讲</description>
|
||||
|
||||
<dependencies></dependencies>
|
||||
|
||||
</project>
|
||||
21
taoyao-model/pom.xml
Normal file
21
taoyao-model/pom.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>taoyao-model</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>模型</name>
|
||||
<description>数据模型</description>
|
||||
|
||||
<dependencies></dependencies>
|
||||
|
||||
</project>
|
||||
26
taoyao-server/pom.xml
Normal file
26
taoyao-server/pom.xml
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>taoyao-server</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>服务</name>
|
||||
<description>启动服务</description>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.acgist.taoyao;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class TaoyaoApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(TaoyaoApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
||||
1
taoyao-server/src/main/resources/application.properties
Normal file
1
taoyao-server/src/main/resources/application.properties
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.acgist.taoyao;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
@SpringBootTest
|
||||
class TaoyaoApplicationTests {
|
||||
|
||||
@Test
|
||||
void contextLoads() {
|
||||
}
|
||||
|
||||
}
|
||||
26
taoyao-signal/pom.xml
Normal file
26
taoyao-signal/pom.xml
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>taoyao-signal</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>信令</name>
|
||||
<description>信令服务</description>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-websocket</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
26
taoyao-webrtc/pom.xml
Normal file
26
taoyao-webrtc/pom.xml
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>taoyao-webrtc</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<name>WebRTC模块</name>
|
||||
<description>WebRTC模块</description>
|
||||
|
||||
<modules>
|
||||
<module>taoyao-webrtc-sfu</module>
|
||||
<module>taoyao-webrtc-mcu</module>
|
||||
<module>taoyao-webrtc-mesh</module>
|
||||
<module>taoyao-webrtc-native</module>
|
||||
</modules>
|
||||
|
||||
</project>
|
||||
21
taoyao-webrtc/taoyao-webrtc-mcu/pom.xml
Normal file
21
taoyao-webrtc/taoyao-webrtc-mcu/pom.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>taoyao-webrtc-mcu</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>WebRTC MCU架构实现</name>
|
||||
<description>WebRTC MCU架构实现</description>
|
||||
|
||||
<dependencies></dependencies>
|
||||
|
||||
</project>
|
||||
21
taoyao-webrtc/taoyao-webrtc-mesh/pom.xml
Normal file
21
taoyao-webrtc/taoyao-webrtc-mesh/pom.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>taoyao-webrtc-mesh</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>WebRTC MESH架构实现</name>
|
||||
<description>WebRTC MESH架构实现</description>
|
||||
|
||||
<dependencies></dependencies>
|
||||
|
||||
</project>
|
||||
21
taoyao-webrtc/taoyao-webrtc-native/pom.xml
Normal file
21
taoyao-webrtc/taoyao-webrtc-native/pom.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>taoyao-webrtc-native</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>WebRTC底层实现</name>
|
||||
<description>MCU/SFU底层媒体服务</description>
|
||||
|
||||
<dependencies></dependencies>
|
||||
|
||||
</project>
|
||||
21
taoyao-webrtc/taoyao-webrtc-sfu/pom.xml
Normal file
21
taoyao-webrtc/taoyao-webrtc-sfu/pom.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>taoyao-webrtc-sfu</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>WebRTC SFU架构实现</name>
|
||||
<description>WebRTC SFU架构实现</description>
|
||||
|
||||
<dependencies></dependencies>
|
||||
|
||||
</project>
|
||||
Reference in New Issue
Block a user