diff --git a/.gitignore b/.gitignore index ae58190..0abb7c8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,4 @@ *.factorypath logs/ -target/ -.apt_generated/ -.apt_generated_tests/ \ No newline at end of file +target/ \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..100b8d1 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "taoyao-media/mediasoup"] + path = taoyao-media/mediasoup + url = git@github.com:acgist/mediasoup.git diff --git a/README.md b/README.md index b71eb5f..3694d7a 100644 --- a/README.md +++ b/README.md @@ -1,68 +1,45 @@ # 桃夭 -桃夭是套`WebRTC`信令服务,综合`Mesh`、`MCU`和`SFU`三种媒体通信架构,支持直播会议两种场景。 +桃夭是套`WebRTC`信令服务,使用`Mediasoup`提供媒体服务,支持直播会议两种场景。 ## 模块 |模块|名称|描述| |:--|:--|:--| -|taoyao|桃夭|桃之夭夭灼灼其华| -|taoyao-boot|基础|基础模块| -|taoyao-node|集群|集群模块| -|taoyao-live|直播|直播、连麦、本地视频同看| -|taoyao-media|媒体|录制
音频(降噪、混音、变声)
视频(水印、美颜、AI识别)| +|taoyao-media|媒体|媒体服务| |taoyao-signal|信令|信令服务| -|taoyao-server|服务|启动服务| -|taoyao-meeting|会议|会议模式、广播模式、单人对讲| -|taoyao-webrtc|WebRTC|WebRTC模块| -|taoyao-webrtc-mesh|Mesh架构|Mesh架构| -|taoyao-webrtc-moon|Moon架构|Moon架构| -|taoyao-webrtc-kurento|kurento框架|WebRTC协议簇kurento实现| +|taoyao-client|终端|终端示例| -## 模块关系 +### 流程 -``` -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| taoyao-server | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| taoyao-live | taoyao-meeting | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| taoyao-media | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| taoyao-webrtc-moon | | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ taoyao-webrtc-mesh + -| taoyao-webrtc-kurento | | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| taoyao-signal | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| taoyao-boot | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -``` +终端首先连接信令得到媒体服务配置,然后推送媒体流到媒体服务,最后通过信令操作各个终端媒体如何转发。 -> 综合比较`jitsi`|`kurento`两个框架最后选择`kurento`框架作为基础框架 +> 终端不能直接连接媒体服务操作其他终端媒体 -## 架构比较 +## 媒体 -### Mesh +* [mediasoup官网](https://mediasoup.org/) +* [mediasoup源码](https://github.com/versatica/mediasoup) +* [mediasoup文档](https://mediasoup.org/documentation/v3/mediasoup) +* [mediasoup接口](https://mediasoup.org/documentation/v3/mediasoup/api) -流媒体点对点连接,不经过服务端。 +### 常见WebRTC媒体服务 -#### 功能简介 +* Janus +* Jitsi +* Licode +* Kurento +* Medooze +* Mediasoup -* ~~直播~~ -* ~~媒体:降噪、变声、美颜录制、等等~~ -* 可能需要自己搭建`coturn`服务实现`STUN`/`TURN`功能 -* 终端和终端之间各自建立一个独立媒体连接 +## 终端 -### Moon +* [mediasoup-client源码](https://github.com/versatica/mediasoup-client) +* [mediasoup-client文档](https://mediasoup.org/documentation/v3/mediasoup-client) +* [mediasoup-client接口](https://mediasoup.org/documentation/v3/mediasoup-client/api) -综合`MCU`/`SFU`两种架构,终端推流到服务端,由服务端处理后分流。 +## TODO -> 为什么叫`Moon`:因为这是古诗词中最美丽的意象 - -#### 功能简介 - -* 需要安装[KMS服务](./docs/Deploy.md#kmskurento-media-server) -* 提供混音、变声、美颜、录制等等媒体功能 -* 终端推送给服务端最高质量媒体,再由服务端根据订阅终端按配置分流。 -* 终端和服务器之间建立两个媒体连接,一个本地媒体,一个远程媒体。 +* 录制 +* 音频:降噪、混音、变声 +* 视频:水印、美颜、AI识别 diff --git a/docs/Deploy.md b/docs/Deploy.md index 4778c02..e525f64 100644 --- a/docs/Deploy.md +++ b/docs/Deploy.md @@ -59,6 +59,8 @@ sysctl -p yum install git ``` +## 媒体 + ## Java 安装之前需要卸载旧版,如果旧版已经是`17+`可以忽略安装。 @@ -94,7 +96,7 @@ PATH=$PATH:/data/maven/apache-maven-3.8.6/bin mvn -version ``` -## Taoyao +## 信令 ``` # 下载源码 @@ -137,10 +139,7 @@ systemctl start taoyao systemctl enable taoyao ``` -## KMS(Kurento Media Server) - -``` -``` +## 终端 ## 防火墙 @@ -164,6 +163,8 @@ firewall-cmd --zone=public --remove-port=45535-65535/udp --permanent keytool -genkeypair -keyalg RSA -dname "CN=localhost, OU=acgist, O=taoyao, L=GZ, ST=GD, C=CN" -alias taoyao -validity 3650 -ext ku:c=dig,keyE -ext eku=serverAuth -ext SAN=dns:localhost,ip:127.0.0.1 -keystore taoyao.jks -keypass 123456 -storepass 123456 ``` +## 资料 + https://www.jianshu.com/p/fa047d7054eb https://www.jianshu.com/p/59da3d350488 https://www.jianshu.com/p/fa047d7054eb diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 16b3c8b..0000000 --- a/pom.xml +++ /dev/null @@ -1,341 +0,0 @@ - - - - 4.0.0 - - - org.springframework.boot - spring-boot-starter-parent - 3.0.0 - - - - com.acgist - taoyao - 1.0.0 - pom - - https://gitee.com/acgist/taoyao - taoyao - 桃夭:桃夭是套WebRTC信令服务,综合Mesh、MCU和SFU三种媒体通信架构,支持直播会议两种场景。 - 2022 - - - - 17 - 1.18.24 - 6.18.0 - 2.0.0 - 1.5.3.Final - 4.4 - - ${project.basedir} - UTF-8 - true - - - - taoyao-boot - taoyao-node - taoyao-live - taoyao-media - taoyao-signal - taoyao-server - taoyao-webrtc - taoyao-meeting - - - - - - org.mapstruct - mapstruct - - - org.mapstruct - mapstruct-processor - - - org.projectlombok - lombok - - - - org.apache.commons - commons-lang3 - - - org.apache.commons - commons-collections4 - - - - com.fasterxml.jackson.datatype - jackson-datatype-jsr310 - - - - org.springdoc - springdoc-openapi-starter-webmvc-ui - - - - org.springframework.boot - spring-boot-starter-aop - - - - org.springframework.boot - spring-boot-autoconfigure - - - - org.springframework.boot - spring-boot-starter-logging - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - com.acgist - taoyao-boot - ${project.version} - - - com.acgist - taoyao-live - ${project.version} - - - com.acgist - taoyao-media - ${project.version} - - - com.acgist - taoyao-server - ${project.version} - - - com.acgist - taoyao-signal - ${project.version} - - - com.acgist - taoyao-meeting - ${project.version} - - - com.acgist - taoyao-webrtc - ${project.version} - - - com.acgist - taoyao-webrtc-mesh - ${project.version} - - - com.acgist - taoyao-webrtc-moon - ${project.version} - - - com.acgist - taoyao-webrtc-kurento - ${project.version} - - - - org.kurento - kurento-client - ${kurento.version} - - - - org.apache.commons - commons-collections4 - ${collections4.version} - - - - org.mapstruct - mapstruct - ${mapstruct.version} - provided - - - org.mapstruct - mapstruct-processor - ${mapstruct.version} - provided - - - - org.projectlombok - lombok - ${lombok.version} - provided - - - - - - - - src/main/resources - - **/*.yml - **/*.properties - - true - - - src/main/resources - - - - **/*.* - - - **/*.yml - **/*.properties - - false - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - ${java.version} - ${java.version} - ${taoyao.maven.encoding} - - - - org.apache.maven.plugins - maven-jar-plugin - - - - *.jks - *.yml - *.properties - - - - - ../config/ - - - - - - org.apache.maven.plugins - maven-assembly-plugin - - - assembly - package - - single - - - false - ${taoyao.maven.skip.assembly} - false - - - - - - - - - - - dev - - true - - - dev - - -Xms512M -Xmx1024M -XX:NewRatio=1 -XX:SurvivorRatio=2 - - - - - org.apache.maven.plugins - maven-assembly-plugin - - - ${taoyao.maven.basedir}/docs/assembly/dev.xml - - - - - - - - - org.springdoc - springdoc-openapi-starter-webmvc-ui - ${springdoc.version} - - - - - - release - - release - - -Xms2048M -Xmx4096M -XX:NewRatio=1 -XX:SurvivorRatio=2 - - - - - org.apache.maven.plugins - maven-assembly-plugin - - - ${taoyao.maven.basedir}/docs/assembly/release.xml - - - - - - - - - org.springdoc - springdoc-openapi-starter-webmvc-ui - ${springdoc.version} - provided - - - - - - - \ No newline at end of file diff --git a/taoyao-client/.gitignore b/taoyao-client/.gitignore new file mode 100644 index 0000000..38adffa --- /dev/null +++ b/taoyao-client/.gitignore @@ -0,0 +1,28 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/taoyao-client/.vscode/extensions.json b/taoyao-client/.vscode/extensions.json new file mode 100644 index 0000000..c0a6e5a --- /dev/null +++ b/taoyao-client/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] +} diff --git a/taoyao-client/README.md b/taoyao-client/README.md new file mode 100644 index 0000000..01c457b --- /dev/null +++ b/taoyao-client/README.md @@ -0,0 +1,29 @@ +# client + +This template should help get you started developing with Vue 3 in Vite. + +## Recommended IDE Setup + +[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin). + +## Customize configuration + +See [Vite Configuration Reference](https://vitejs.dev/config/). + +## Project Setup + +```sh +npm install +``` + +### Compile and Hot-Reload for Development + +```sh +npm run dev +``` + +### Compile and Minify for Production + +```sh +npm run build +``` diff --git a/taoyao-client/index.html b/taoyao-client/index.html new file mode 100644 index 0000000..99f583a --- /dev/null +++ b/taoyao-client/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +
+ + + diff --git a/taoyao-client/package-lock.json b/taoyao-client/package-lock.json new file mode 100644 index 0000000..3ecbc96 --- /dev/null +++ b/taoyao-client/package-lock.json @@ -0,0 +1,443 @@ +{ + "name": "client", + "version": "0.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/parser": { + "version": "7.20.13", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.20.13.tgz", + "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==" + }, + "@esbuild/android-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz", + "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", + "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz", + "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", + "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", + "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", + "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", + "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", + "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", + "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", + "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", + "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", + "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", + "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", + "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", + "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", + "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", + "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", + "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", + "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", + "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", + "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", + "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "dev": true, + "optional": true + }, + "@vitejs/plugin-vue": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz", + "integrity": "sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==", + "dev": true + }, + "@vue/compiler-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz", + "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", + "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", + "requires": { + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", + "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-ssr": "3.2.47", + "@vue/reactivity-transform": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", + "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "requires": { + "@vue/shared": "3.2.47" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", + "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "requires": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "requires": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "requires": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/shared": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.47.tgz", + "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "esbuild": { + "version": "0.16.17", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.16.17.tgz", + "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.16.17", + "@esbuild/android-arm64": "0.16.17", + "@esbuild/android-x64": "0.16.17", + "@esbuild/darwin-arm64": "0.16.17", + "@esbuild/darwin-x64": "0.16.17", + "@esbuild/freebsd-arm64": "0.16.17", + "@esbuild/freebsd-x64": "0.16.17", + "@esbuild/linux-arm": "0.16.17", + "@esbuild/linux-arm64": "0.16.17", + "@esbuild/linux-ia32": "0.16.17", + "@esbuild/linux-loong64": "0.16.17", + "@esbuild/linux-mips64el": "0.16.17", + "@esbuild/linux-ppc64": "0.16.17", + "@esbuild/linux-riscv64": "0.16.17", + "@esbuild/linux-s390x": "0.16.17", + "@esbuild/linux-x64": "0.16.17", + "@esbuild/netbsd-x64": "0.16.17", + "@esbuild/openbsd-x64": "0.16.17", + "@esbuild/sunos-x64": "0.16.17", + "@esbuild/win32-arm64": "0.16.17", + "@esbuild/win32-ia32": "0.16.17", + "@esbuild/win32-x64": "0.16.17" + } + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rollup": { + "version": "3.12.1", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.12.1.tgz", + "integrity": "sha512-t9elERrz2i4UU9z7AwISj3CQcXP39cWxgRWLdf4Tm6aKm1eYrqHIgjzXBgb67GNY1sZckTFFi0oMozh3/S++Ig==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "vite": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/vite/-/vite-4.0.4.tgz", + "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", + "dev": true, + "requires": { + "esbuild": "^0.16.3", + "fsevents": "~2.3.2", + "postcss": "^8.4.20", + "resolve": "^1.22.1", + "rollup": "^3.7.0" + } + }, + "vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + } + } +} diff --git a/taoyao-client/package.json b/taoyao-client/package.json new file mode 100644 index 0000000..82cd247 --- /dev/null +++ b/taoyao-client/package.json @@ -0,0 +1,17 @@ +{ + "name": "client", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^3.2.45" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^4.0.0", + "vite": "^4.0.0" + } +} diff --git a/taoyao-client/public/favicon.ico b/taoyao-client/public/favicon.ico new file mode 100644 index 0000000..df36fcf Binary files /dev/null and b/taoyao-client/public/favicon.ico differ diff --git a/taoyao-client/src/App.vue b/taoyao-client/src/App.vue new file mode 100644 index 0000000..633a5df --- /dev/null +++ b/taoyao-client/src/App.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/taoyao-client/src/assets/base.css b/taoyao-client/src/assets/base.css new file mode 100644 index 0000000..71dc55a --- /dev/null +++ b/taoyao-client/src/assets/base.css @@ -0,0 +1,74 @@ +/* color palette from */ +:root { + --vt-c-white: #ffffff; + --vt-c-white-soft: #f8f8f8; + --vt-c-white-mute: #f2f2f2; + + --vt-c-black: #181818; + --vt-c-black-soft: #222222; + --vt-c-black-mute: #282828; + + --vt-c-indigo: #2c3e50; + + --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); + --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); + --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); + --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); + + --vt-c-text-light-1: var(--vt-c-indigo); + --vt-c-text-light-2: rgba(60, 60, 60, 0.66); + --vt-c-text-dark-1: var(--vt-c-white); + --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); +} + +/* semantic color variables for this project */ +:root { + --color-background: var(--vt-c-white); + --color-background-soft: var(--vt-c-white-soft); + --color-background-mute: var(--vt-c-white-mute); + + --color-border: var(--vt-c-divider-light-2); + --color-border-hover: var(--vt-c-divider-light-1); + + --color-heading: var(--vt-c-text-light-1); + --color-text: var(--vt-c-text-light-1); + + --section-gap: 160px; +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--vt-c-black); + --color-background-soft: var(--vt-c-black-soft); + --color-background-mute: var(--vt-c-black-mute); + + --color-border: var(--vt-c-divider-dark-2); + --color-border-hover: var(--vt-c-divider-dark-1); + + --color-heading: var(--vt-c-text-dark-1); + --color-text: var(--vt-c-text-dark-2); + } +} + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + position: relative; + font-weight: normal; +} + +body { + min-height: 100vh; + color: var(--color-text); + background: var(--color-background); + transition: color 0.5s, background-color 0.5s; + line-height: 1.6; + font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, + Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + font-size: 15px; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/taoyao-client/src/assets/logo.svg b/taoyao-client/src/assets/logo.svg new file mode 100644 index 0000000..bc826fe --- /dev/null +++ b/taoyao-client/src/assets/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/taoyao-client/src/assets/main.css b/taoyao-client/src/assets/main.css new file mode 100644 index 0000000..e8667cd --- /dev/null +++ b/taoyao-client/src/assets/main.css @@ -0,0 +1,35 @@ +@import './base.css'; + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + + font-weight: normal; +} + +a, +.green { + text-decoration: none; + color: hsla(160, 100%, 37%, 1); + transition: 0.4s; +} + +@media (hover: hover) { + a:hover { + background-color: hsla(160, 100%, 37%, 0.2); + } +} + +@media (min-width: 1024px) { + body { + display: flex; + place-items: center; + } + + #app { + display: grid; + grid-template-columns: 1fr 1fr; + padding: 0 2rem; + } +} diff --git a/taoyao-client/src/components/HelloWorld.vue b/taoyao-client/src/components/HelloWorld.vue new file mode 100644 index 0000000..0a0988b --- /dev/null +++ b/taoyao-client/src/components/HelloWorld.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/taoyao-client/src/components/TheWelcome.vue b/taoyao-client/src/components/TheWelcome.vue new file mode 100644 index 0000000..5e64625 --- /dev/null +++ b/taoyao-client/src/components/TheWelcome.vue @@ -0,0 +1,86 @@ + + + diff --git a/taoyao-client/src/components/WelcomeItem.vue b/taoyao-client/src/components/WelcomeItem.vue new file mode 100644 index 0000000..ba0def3 --- /dev/null +++ b/taoyao-client/src/components/WelcomeItem.vue @@ -0,0 +1,86 @@ + + + diff --git a/taoyao-client/src/components/icons/IconCommunity.vue b/taoyao-client/src/components/icons/IconCommunity.vue new file mode 100644 index 0000000..2dc8b05 --- /dev/null +++ b/taoyao-client/src/components/icons/IconCommunity.vue @@ -0,0 +1,7 @@ + diff --git a/taoyao-client/src/components/icons/IconDocumentation.vue b/taoyao-client/src/components/icons/IconDocumentation.vue new file mode 100644 index 0000000..6d4791c --- /dev/null +++ b/taoyao-client/src/components/icons/IconDocumentation.vue @@ -0,0 +1,7 @@ + diff --git a/taoyao-client/src/components/icons/IconEcosystem.vue b/taoyao-client/src/components/icons/IconEcosystem.vue new file mode 100644 index 0000000..c3a4f07 --- /dev/null +++ b/taoyao-client/src/components/icons/IconEcosystem.vue @@ -0,0 +1,7 @@ + diff --git a/taoyao-client/src/components/icons/IconSupport.vue b/taoyao-client/src/components/icons/IconSupport.vue new file mode 100644 index 0000000..7452834 --- /dev/null +++ b/taoyao-client/src/components/icons/IconSupport.vue @@ -0,0 +1,7 @@ + diff --git a/taoyao-client/src/components/icons/IconTooling.vue b/taoyao-client/src/components/icons/IconTooling.vue new file mode 100644 index 0000000..660598d --- /dev/null +++ b/taoyao-client/src/components/icons/IconTooling.vue @@ -0,0 +1,19 @@ + + diff --git a/taoyao-client/src/main.js b/taoyao-client/src/main.js new file mode 100644 index 0000000..90e6400 --- /dev/null +++ b/taoyao-client/src/main.js @@ -0,0 +1,6 @@ +import { createApp } from 'vue' +import App from './App.vue' + +import './assets/main.css' + +createApp(App).mount('#app') diff --git a/taoyao-client/vite.config.js b/taoyao-client/vite.config.js new file mode 100644 index 0000000..de5cb31 --- /dev/null +++ b/taoyao-client/vite.config.js @@ -0,0 +1,14 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + } + } +}) diff --git a/taoyao-media/README.md b/taoyao-media/README.md index 0cece0c..e5d541f 100644 --- a/taoyao-media/README.md +++ b/taoyao-media/README.md @@ -1 +1,20 @@ # 媒体 + +只要负责媒体处理,不要添加任何业务逻辑,所有业务逻辑都由[taoyao-signal](../taoyao-signal)处理。 + +## Mediasoup + +``` +# 更新 +git submodule init +git submodule update --remote + +# 编译 + +``` + +## 使用 + +``` + +``` \ No newline at end of file diff --git a/taoyao-media/mediasoup b/taoyao-media/mediasoup new file mode 160000 index 0000000..fe8e84a --- /dev/null +++ b/taoyao-media/mediasoup @@ -0,0 +1 @@ +Subproject commit fe8e84a6750615c67d9a83a20789d2b2b3fac986 diff --git a/taoyao-media/server.js b/taoyao-media/server.js new file mode 100644 index 0000000..438b8fe --- /dev/null +++ b/taoyao-media/server.js @@ -0,0 +1,3 @@ +/** + * 媒体服务 + */ \ No newline at end of file diff --git a/taoyao-media/signal.js b/taoyao-media/signal.js new file mode 100644 index 0000000..c6cd44b --- /dev/null +++ b/taoyao-media/signal.js @@ -0,0 +1,5 @@ +/** + * 适配媒体信令 + * 1. 终端媒体流向 + * 2. 处理音频视频:降噪、水印等等 + */ diff --git a/taoyao-signal/README.md b/taoyao-signal/README.md index 40dac94..65a4c59 100644 --- a/taoyao-signal/README.md +++ b/taoyao-signal/README.md @@ -1,414 +1,56 @@ # 信令 -## 信令格式 +## 模块 + +|模块|名称|描述| +|:--|:--|:--| +|taoyao|桃夭|桃之夭夭灼灼其华| +|taoyao-boot|基础|基础模块| +|taoyao-node|集群|集群模块| +|taoyao-live|直播|直播、连麦、监控、视频同看| +|taoyao-media|媒体|Mediasoup| +|taoyao-signal|信令|信令服务| +|taoyao-server|服务|启动服务| +|taoyao-meeting|会议|会议模式、广播模式、单人对讲| + +> 媒体处理均由Mediasoup实现 + +## 模块关系 ``` -{ - "header": { - "v": "版本", - "id": 请求标识, - "sn": "设备标识" - "pid": 信令标识, - }, - "code": "响应编码", - "message": "响应描述", - "body": { - // 信令主体 - } -} ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| taoyao-server | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| taoyao-live | taoyao-meeting | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| taoyao-media | Mediasoup | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| taoyao-signal | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| taoyao-boot | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ``` -### 符号解释 - -``` --> 单播:定向传播信令 --) 广播:广播信令(排除自己) -+) 全员广播:广播信令(包含自己) -``` - -## 平台信令(1000~1999) - -### 关闭服务信令(1000) - -#### 消息主体 - -``` -# 请求 -{} -# 广播 -{} -``` - -#### 消息流程:终端->服务端+)终端 - -全员广播[关闭服务信令](#关闭服务信令1000),然后关闭信令服务。 - -### 执行命令信令(1001) - -#### 消息主体 - -``` -# 请求 -{ - "script": "命令" -} -# 响应 -{ - "result": "结果" -} -``` - -#### 消息流程:终端->服务端->终端 - -执行命令同时响应结果 - -### 异常信令(1999) - -#### 消息主体 - -``` -{} -``` - -## 终端信令(2000~2999) - -### 终端信息 - -### 终端注册信令(2000) - -#### 消息主体 - -``` -# 请求 -{ - "username": "信令授权用户", - "password": "信令授权密码", - "ip": "IP地址", - "mac": "MAC地址", - "signal": "信号强度", - "battery": "电池电量" -} -# 响应 -{} -# 广播 -{ - "sn": "终端标识", - "ip": "IP地址", - "mac": "MAC地址", - "signal": "信号强度", - "battery": "电池电量" -} -``` - -#### 消息流程:终端->服务端-)终端 - -终端注册成功以后响应同时[下发配置信令](#下发配置信令2004),并且广播[终端上线信令](#终端上线信令2002)。 - -### 终端关闭信令(2001) - -#### 消息主体 - -``` -# 请求 -{} -# 广播 -{ - "sn": "终端标识" -} -``` - -#### 消息流程:终端-)服务端 - -终端关闭以后广播[终端下线信令](#终端下线信令2003),同时释放所有相关资源(信令通道、媒体通道等等) - -### 终端上线信令(2002) - -#### 消息主体 - -``` -{ - "sn": "终端标识" -} -``` - -#### 消息流程:服务端->终端 - -参考[终端注册信令](#终端注册信令2000) - -### 终端下线信令(2003) - -#### 消息主体 - -``` -{ - "sn": "终端标识" -} -``` - -#### 消息流程:服务端->终端 - -参考[终端关闭信令](#终端关闭信令2001) - -### 下发配置信令(2004) - -#### 消息主体 - -``` -{ - "time": "系统时间:yyyyMMddHHmmss", - "media": "媒体配置", - "webrtc": "WebRTC配置" -} -``` - -#### 消息流程:服务端->终端 - -参考[终端注册信令](#终端注册信令2000) - -### 心跳信令(2005) - -#### 消息主体 - -``` -# 请求 -{ - "signal": "信号强度", - "battery": "电池电量" -} -# 响应 -{} -``` - -#### 消息流程:终端->服务端->终端 - -### 单播信令(2006) - -#### 消息主体 - -``` -# 请求 -{ - "to": "接收终端标识", - // 主体信息 -} -# 转发 -{ - // 主体信息 -} -``` - -#### 消息流程:终端->服务端->终端 - -终端转发信令到指定的终端 - -### 广播信令(2007) - -#### 消息主体 - -``` -# 请求 -{ - // 主体信息 -} -# 广播 -{ - // 主体信息 -} -``` - -#### 消息流程:终端->服务端-)终端 - -终端广播信令到所有的终端 - -### 重启终端信令(2997) - -#### 消息主体 - -``` -# 请求 -{ -} -``` - -#### 消息流程:服务器->终端 - -重启终端 - -### 终端状态信令(2998) - -#### 消息主体 - -``` -# 请求 -{ - "sn": "终端标识" -} -# 响应 -{ - "sn": "终端标识", - "ip": "IP地址", - "mac": "MAC地址", - "signal": "信号强度", - "battery": "电池电量" -} -``` - -#### 消息流程:终端->服务端->终端 - -响应指定终端状态(如果没有指定终端标识默认查询自己) - -### 终端列表信令(2999) - -#### 消息主体 - -``` -# 请求 -{} -# 响应 -[ - { - "sn": "终端标识", - "ip": "IP地址", - "mac": "MAC地址", - "signal": "信号强度", - "battery": "电池电量" - }, - ... -] -``` - -#### 消息流程:终端->服务端->终端 - -响应所有终端状态列表 - -## 直播信令(3000~3999) - -### 开启直播信令(3000) - -### 关闭直播信令(3001) - -### 直播广播信令(3002) - -### 直播终端列表信令(3997) - -### 直播状态信令(3998) - -### 直播列表信令(3999) - -## 会议信令(4000~4999) - -### 创建会议信令(4000) - -#### 消息主体 - -``` -{} ----- -{ - "id": "会议标识" -} -``` - -#### 消息流程:终端->服务端+)终端 - -### 关闭会议信令(4001) - -释放资源、广播广播 - -### 进入会议信令(4002) - -#### 消息主体 - -``` -# 请求 -{ - "id": "会议标识" -} -# 广播 -{ - "id": "会议标识", - "sn": "终端标识" -} -``` - -#### 消息流程:终端->服务端-)终端 - -终端进入会议,广播通知其他终端。 - -### 离开会议信令(4003) - -广播 - -### 邀请终端信令(4004) - -邀请终端进入会议,终端确认进入发送进入会议信令。 - -### 踢出终端信令(4005) - -广播 - -### 会议广播信令(4006) - -### 会议终端列表信令(4997) - -### 会议状态信令(4998) - -### 会议列表信令(4999) - -## 媒体信令(5000~5999) - -### 发布信令(5000) - -控制终端推流(服务端拉流) - -### 取消发布指令(5001) - -控制终端暂停推流(服务端取消拉流) - -### 订阅指令(5002) - -订阅终端媒体流(终端拉流) - -### 取消订阅指令(5003) - -取消订阅终端媒体流(终端取消拉流) - -### 暂停信令(5004) - -终端->服务端 -暂停发布、订阅(不关媒体流通道) -Moon模式有效 - -### 恢复信令(5005) - -终端->服务端 -暂停发布、订阅(不关媒体流通道) -Moon模式有效 - -### 开启录像信令(5006) - -### 停止录像信令(5007) - -### 配置媒体信令(5008) - -配置订阅媒体:码率、帧率、分辨率等等 - -### Offer信令(5997) - -WebRTC信令:`Offer` - -### Answer信令(5998) - -WebRTC信令:`Answer` - -### 候选信令(5999) - -WebRTC信令:`IceCandidate`主要用来解决`NAT`问题 - -## 测试 - -``` -let socket = new WebSocket("wss://localhost:8888/websocket.signal"); -socket.send('{"header":{"pid":2000,"v":"1.0.0","id":"1","sn":"taoyao"},"body":{"username":"taoyao","password":"taoyao"}}'); -socket.send('{"header":{"pid":1000,"v":"1.0.0","id":"1","sn":"taoyao"},"body":{}}'); -``` \ No newline at end of file +## WebRTC资料 + +https://www.cnblogs.com/ssyfj/p/14828185.html +https://www.cnblogs.com/ssyfj/p/14826516.html +https://www.cnblogs.com/ssyfj/p/14823861.html +https://www.cnblogs.com/ssyfj/p/14815266.html +https://www.cnblogs.com/ssyfj/p/14811253.html +https://www.cnblogs.com/ssyfj/p/14806678.html +https://www.cnblogs.com/ssyfj/p/14805040.html +https://www.cnblogs.com/ssyfj/p/14788663.html +https://www.cnblogs.com/ssyfj/p/14787012.html +https://www.cnblogs.com/ssyfj/p/14783168.html +https://www.cnblogs.com/ssyfj/p/14781982.html +https://www.cnblogs.com/ssyfj/p/14778839.html + +## Mediasoup资料 + +https://www.cnblogs.com/ssyfj/p/14855454.html +https://www.cnblogs.com/ssyfj/p/14851442.html +https://www.cnblogs.com/ssyfj/p/14850041.html +https://www.cnblogs.com/ssyfj/p/14847097.html +https://www.cnblogs.com/ssyfj/p/14843182.html +https://www.cnblogs.com/ssyfj/p/14843082.html diff --git a/docs/assembly/dev.xml b/taoyao-signal/docs/assembly/dev.xml similarity index 100% rename from docs/assembly/dev.xml rename to taoyao-signal/docs/assembly/dev.xml diff --git a/docs/assembly/release.xml b/taoyao-signal/docs/assembly/release.xml similarity index 100% rename from docs/assembly/release.xml rename to taoyao-signal/docs/assembly/release.xml diff --git a/docs/bin/deploy.sh b/taoyao-signal/docs/bin/deploy.sh similarity index 100% rename from docs/bin/deploy.sh rename to taoyao-signal/docs/bin/deploy.sh diff --git a/docs/bin/startup.sh b/taoyao-signal/docs/bin/startup.sh similarity index 100% rename from docs/bin/startup.sh rename to taoyao-signal/docs/bin/startup.sh diff --git a/docs/bin/stop.sh b/taoyao-signal/docs/bin/stop.sh similarity index 100% rename from docs/bin/stop.sh rename to taoyao-signal/docs/bin/stop.sh diff --git a/docs/bin/wait.sh b/taoyao-signal/docs/bin/wait.sh similarity index 100% rename from docs/bin/wait.sh rename to taoyao-signal/docs/bin/wait.sh diff --git a/docs/nginx/nginx.conf b/taoyao-signal/docs/nginx/nginx.conf similarity index 100% rename from docs/nginx/nginx.conf rename to taoyao-signal/docs/nginx/nginx.conf diff --git a/taoyao-signal/pom.xml b/taoyao-signal/pom.xml index 49d3adb..926c65d 100644 --- a/taoyao-signal/pom.xml +++ b/taoyao-signal/pom.xml @@ -1,34 +1,314 @@ - - + 4.0.0 - com.acgist - taoyao - 1.0.0 + org.springframework.boot + spring-boot-starter-parent + 3.0.0 + - taoyao-signal - jar + com.acgist + taoyao + 1.0.0 + pom - taoyao-signal - 信令:信令服务 + https://gitee.com/acgist/taoyao + taoyao + 桃夭:桃夭是套`WebRTC`信令服务,使用`Mediasoup`提供媒体服务,支持直播会议两种场景。 + 2022 + + + + 17 + 1.18.24 + 6.18.0 + 2.0.0 + 1.5.3.Final + 4.4 + + ${project.basedir} + UTF-8 + true + + + + taoyao-boot + taoyao-node + taoyao-live + taoyao-media + taoyao-signal + taoyao-server + taoyao-meeting + + - com.acgist - taoyao-boot + org.mapstruct + mapstruct - org.springframework.boot - spring-boot-starter-web + org.mapstruct + mapstruct-processor + + org.projectlombok + lombok + + + + org.apache.commons + commons-lang3 + + + org.apache.commons + commons-collections4 + + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + + org.springframework.boot - spring-boot-starter-websocket + spring-boot-starter-aop + + + + org.springframework.boot + spring-boot-autoconfigure + + + + org.springframework.boot + spring-boot-starter-logging + + + + org.springframework.boot + spring-boot-starter-test + test + + + + com.acgist + taoyao-boot + ${project.version} + + + com.acgist + taoyao-live + ${project.version} + + + com.acgist + taoyao-media + ${project.version} + + + com.acgist + taoyao-server + ${project.version} + + + com.acgist + taoyao-signal + ${project.version} + + + com.acgist + taoyao-meeting + ${project.version} + + + + org.apache.commons + commons-collections4 + ${collections4.version} + + + + org.mapstruct + mapstruct + ${mapstruct.version} + provided + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + provided + + + + org.projectlombok + lombok + ${lombok.version} + provided + + + + + + + + src/main/resources + + **/*.yml + **/*.properties + + true + + + src/main/resources + + + + **/*.* + + + **/*.yml + **/*.properties + + false + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${java.version} + ${java.version} + ${taoyao.maven.encoding} + + + + org.apache.maven.plugins + maven-jar-plugin + + + + *.jks + *.yml + *.properties + + + + + ../config/ + + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + assembly + package + + single + + + false + ${taoyao.maven.skip.assembly} + false + + + + + + + + + + + dev + + true + + + dev + + -Xms512M -Xmx1024M -XX:NewRatio=1 -XX:SurvivorRatio=2 + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + ${taoyao.maven.basedir}/docs/assembly/dev.xml + + + + + + + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + ${springdoc.version} + + + + + + release + + release + + -Xms2048M -Xmx4096M -XX:NewRatio=1 -XX:SurvivorRatio=2 + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + ${taoyao.maven.basedir}/docs/assembly/release.xml + + + + + + + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + ${springdoc.version} + provided + + + + + + \ No newline at end of file diff --git a/taoyao-boot/pom.xml b/taoyao-signal/taoyao-boot/pom.xml similarity index 100% rename from taoyao-boot/pom.xml rename to taoyao-signal/taoyao-boot/pom.xml diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/annotation/EventListener.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/annotation/EventListener.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/annotation/EventListener.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/annotation/EventListener.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/annotation/Manager.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/annotation/Manager.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/annotation/Manager.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/annotation/Manager.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/annotation/Protocol.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/annotation/Protocol.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/annotation/Protocol.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/annotation/Protocol.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/BootAutoConfiguration.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/BootAutoConfiguration.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/BootAutoConfiguration.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/BootAutoConfiguration.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/SpringDocAutoConfiguration.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/SpringDocAutoConfiguration.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/SpringDocAutoConfiguration.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/SpringDocAutoConfiguration.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/WebMvcConfigurerAutoConfiguration.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/WebMvcConfigurerAutoConfiguration.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/WebMvcConfigurerAutoConfiguration.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/WebMvcConfigurerAutoConfiguration.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/controller/TaoyaoControllerAdvice.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/controller/TaoyaoControllerAdvice.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/controller/TaoyaoControllerAdvice.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/controller/TaoyaoControllerAdvice.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/controller/TaoyaoErrorController.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/controller/TaoyaoErrorController.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/controller/TaoyaoErrorController.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/controller/TaoyaoErrorController.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/interceptor/InterceptorAdapter.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/interceptor/InterceptorAdapter.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/interceptor/InterceptorAdapter.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/interceptor/InterceptorAdapter.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/Header.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/Header.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/Header.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/Header.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/Message.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/Message.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/Message.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/Message.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/MessageCode.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/MessageCode.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/MessageCode.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/MessageCode.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/MessageCodeException.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/MessageCodeException.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/MessageCodeException.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/MessageCodeException.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/Model.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/Model.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/Model.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/Model.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/ModifyOptional.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/ModifyOptional.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/ModifyOptional.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/model/ModifyOptional.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/IdProperties.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/IdProperties.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/IdProperties.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/IdProperties.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/KmsProperties.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/KmsProperties.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/KmsProperties.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/KmsProperties.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/MediaAudioProperties.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/MediaAudioProperties.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/MediaAudioProperties.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/MediaAudioProperties.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/MediaProperties.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/MediaProperties.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/MediaProperties.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/MediaProperties.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/MediaVideoProperties.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/MediaVideoProperties.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/MediaVideoProperties.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/MediaVideoProperties.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/MoonProperties.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/MoonProperties.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/MoonProperties.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/MoonProperties.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/NodeProperties.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/NodeProperties.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/NodeProperties.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/NodeProperties.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/SecurityProperties.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/SecurityProperties.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/SecurityProperties.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/SecurityProperties.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/SignalProperties.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/SignalProperties.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/SignalProperties.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/SignalProperties.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/TaoyaoProperties.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/TaoyaoProperties.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/TaoyaoProperties.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/TaoyaoProperties.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/WebrtcProperties.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/WebrtcProperties.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/WebrtcProperties.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/property/WebrtcProperties.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/service/IdService.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/service/IdService.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/service/IdService.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/service/IdService.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/service/impl/IdServiceImpl.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/service/impl/IdServiceImpl.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/service/impl/IdServiceImpl.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/service/impl/IdServiceImpl.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/BeanUtils.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/BeanUtils.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/BeanUtils.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/BeanUtils.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/DateUtils.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/DateUtils.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/DateUtils.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/DateUtils.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/ErrorUtils.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/ErrorUtils.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/ErrorUtils.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/ErrorUtils.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/FileUtils.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/FileUtils.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/FileUtils.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/FileUtils.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/JSONUtils.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/JSONUtils.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/JSONUtils.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/JSONUtils.java diff --git a/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/URLUtils.java b/taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/URLUtils.java similarity index 100% rename from taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/URLUtils.java rename to taoyao-signal/taoyao-boot/src/main/java/com/acgist/taoyao/boot/utils/URLUtils.java diff --git a/taoyao-boot/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/taoyao-signal/taoyao-boot/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports similarity index 100% rename from taoyao-boot/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename to taoyao-signal/taoyao-boot/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/taoyao-boot/src/main/resources/banner.txt b/taoyao-signal/taoyao-boot/src/main/resources/banner.txt similarity index 100% rename from taoyao-boot/src/main/resources/banner.txt rename to taoyao-signal/taoyao-boot/src/main/resources/banner.txt diff --git a/taoyao-boot/src/main/resources/logback-spring.xml b/taoyao-signal/taoyao-boot/src/main/resources/logback-spring.xml similarity index 100% rename from taoyao-boot/src/main/resources/logback-spring.xml rename to taoyao-signal/taoyao-boot/src/main/resources/logback-spring.xml diff --git a/taoyao-live/pom.xml b/taoyao-signal/taoyao-live/pom.xml similarity index 100% rename from taoyao-live/pom.xml rename to taoyao-signal/taoyao-live/pom.xml diff --git a/taoyao-live/src/main/java/com/acgist/taoyao/live/Live.java b/taoyao-signal/taoyao-live/src/main/java/com/acgist/taoyao/live/Live.java similarity index 100% rename from taoyao-live/src/main/java/com/acgist/taoyao/live/Live.java rename to taoyao-signal/taoyao-live/src/main/java/com/acgist/taoyao/live/Live.java diff --git a/taoyao-live/src/main/java/com/acgist/taoyao/live/LiveListenerAdapter.java b/taoyao-signal/taoyao-live/src/main/java/com/acgist/taoyao/live/LiveListenerAdapter.java similarity index 100% rename from taoyao-live/src/main/java/com/acgist/taoyao/live/LiveListenerAdapter.java rename to taoyao-signal/taoyao-live/src/main/java/com/acgist/taoyao/live/LiveListenerAdapter.java diff --git a/taoyao-live/src/main/java/com/acgist/taoyao/live/LiveManager.java b/taoyao-signal/taoyao-live/src/main/java/com/acgist/taoyao/live/LiveManager.java similarity index 100% rename from taoyao-live/src/main/java/com/acgist/taoyao/live/LiveManager.java rename to taoyao-signal/taoyao-live/src/main/java/com/acgist/taoyao/live/LiveManager.java diff --git a/taoyao-live/src/main/java/com/acgist/taoyao/live/controller/LiveController.java b/taoyao-signal/taoyao-live/src/main/java/com/acgist/taoyao/live/controller/LiveController.java similarity index 100% rename from taoyao-live/src/main/java/com/acgist/taoyao/live/controller/LiveController.java rename to taoyao-signal/taoyao-live/src/main/java/com/acgist/taoyao/live/controller/LiveController.java diff --git a/taoyao-webrtc/README.md b/taoyao-signal/taoyao-media/README.md similarity index 99% rename from taoyao-webrtc/README.md rename to taoyao-signal/taoyao-media/README.md index f7f5598..9212afd 100644 --- a/taoyao-webrtc/README.md +++ b/taoyao-signal/taoyao-media/README.md @@ -1,3 +1,5 @@ +# 媒体 + # WebRTC ## WebRTC协议栈 diff --git a/taoyao-media/pom.xml b/taoyao-signal/taoyao-media/pom.xml similarity index 82% rename from taoyao-media/pom.xml rename to taoyao-signal/taoyao-media/pom.xml index aad96ff..f9b0c66 100644 --- a/taoyao-media/pom.xml +++ b/taoyao-signal/taoyao-media/pom.xml @@ -19,11 +19,7 @@ com.acgist - taoyao-webrtc-mesh - - - com.acgist - taoyao-webrtc-moon + taoyao-signal diff --git a/taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/listener/MediaAnswerListener.java b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/listener/MediaAnswerListener.java similarity index 87% rename from taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/listener/MediaAnswerListener.java rename to taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/listener/MediaAnswerListener.java index 7c55013..c8d738b 100644 --- a/taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/listener/MediaAnswerListener.java +++ b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/listener/MediaAnswerListener.java @@ -1,7 +1,8 @@ -package com.acgist.taoyao.webrtc.mesh.listener; +package com.acgist.taoyao.media.listener; import java.util.Map; +import com.acgist.taoyao.boot.annotation.EventListener; import com.acgist.taoyao.boot.model.Message; import com.acgist.taoyao.signal.event.media.MediaAnswerEvent; import com.acgist.taoyao.signal.listener.MediaListenerAdapter; @@ -14,8 +15,9 @@ import lombok.extern.slf4j.Slf4j; * @author acgist */ @Slf4j +@EventListener public class MediaAnswerListener extends MediaListenerAdapter { - + @Override public void onApplicationEvent(MediaAnswerEvent event) { final String sn = event.getSn(); diff --git a/taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/listener/MediaCandidateListener.java b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/listener/MediaCandidateListener.java similarity index 87% rename from taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/listener/MediaCandidateListener.java rename to taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/listener/MediaCandidateListener.java index 19368f3..664805b 100644 --- a/taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/listener/MediaCandidateListener.java +++ b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/listener/MediaCandidateListener.java @@ -1,7 +1,8 @@ -package com.acgist.taoyao.webrtc.mesh.listener; +package com.acgist.taoyao.media.listener; import java.util.Map; +import com.acgist.taoyao.boot.annotation.EventListener; import com.acgist.taoyao.boot.model.Message; import com.acgist.taoyao.signal.event.media.MediaCandidateEvent; import com.acgist.taoyao.signal.listener.MediaListenerAdapter; @@ -14,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; * @author acgist */ @Slf4j +@EventListener public class MediaCandidateListener extends MediaListenerAdapter { @Override diff --git a/taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/listener/MediaOfferListener.java b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/listener/MediaOfferListener.java similarity index 87% rename from taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/listener/MediaOfferListener.java rename to taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/listener/MediaOfferListener.java index 2ab7053..ba27d45 100644 --- a/taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/listener/MediaOfferListener.java +++ b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/listener/MediaOfferListener.java @@ -1,7 +1,8 @@ -package com.acgist.taoyao.webrtc.mesh.listener; +package com.acgist.taoyao.media.listener; import java.util.Map; +import com.acgist.taoyao.boot.annotation.EventListener; import com.acgist.taoyao.boot.model.Message; import com.acgist.taoyao.signal.event.media.MediaOfferEvent; import com.acgist.taoyao.signal.listener.MediaListenerAdapter; @@ -14,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; * @author acgist */ @Slf4j +@EventListener public class MediaOfferListener extends MediaListenerAdapter { @Override diff --git a/taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/listener/MediaPublishListener.java b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/listener/MediaPublishListener.java similarity index 87% rename from taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/listener/MediaPublishListener.java rename to taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/listener/MediaPublishListener.java index 7363389..742fc40 100644 --- a/taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/listener/MediaPublishListener.java +++ b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/listener/MediaPublishListener.java @@ -1,7 +1,8 @@ -package com.acgist.taoyao.webrtc.mesh.listener; +package com.acgist.taoyao.media.listener; import java.util.Map; +import com.acgist.taoyao.boot.annotation.EventListener; import com.acgist.taoyao.boot.model.Message; import com.acgist.taoyao.signal.event.media.MediaPublishEvent; import com.acgist.taoyao.signal.listener.MediaListenerAdapter; @@ -14,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; * @author acgist */ @Slf4j +@EventListener public class MediaPublishListener extends MediaListenerAdapter { @Override diff --git a/taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/listener/MediaSubscribeListener.java b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/listener/MediaSubscribeListener.java similarity index 87% rename from taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/listener/MediaSubscribeListener.java rename to taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/listener/MediaSubscribeListener.java index 5112f60..5539ed1 100644 --- a/taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/listener/MediaSubscribeListener.java +++ b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/listener/MediaSubscribeListener.java @@ -1,7 +1,8 @@ -package com.acgist.taoyao.webrtc.mesh.listener; +package com.acgist.taoyao.media.listener; import java.util.Map; +import com.acgist.taoyao.boot.annotation.EventListener; import com.acgist.taoyao.boot.model.Message; import com.acgist.taoyao.signal.event.media.MediaSubscribeEvent; import com.acgist.taoyao.signal.listener.MediaListenerAdapter; @@ -14,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; * @author acgist */ @Slf4j +@EventListener public class MediaSubscribeListener extends MediaListenerAdapter { @Override diff --git a/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/MediaAggregateProcessor.java b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/MediaAggregateProcessor.java similarity index 100% rename from taoyao-media/src/main/java/com/acgist/taoyao/media/processor/MediaAggregateProcessor.java rename to taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/MediaAggregateProcessor.java diff --git a/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/MediaParallelProcessor.java b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/MediaParallelProcessor.java similarity index 100% rename from taoyao-media/src/main/java/com/acgist/taoyao/media/processor/MediaParallelProcessor.java rename to taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/MediaParallelProcessor.java diff --git a/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/MediaRecordProcessor.java b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/MediaRecordProcessor.java similarity index 100% rename from taoyao-media/src/main/java/com/acgist/taoyao/media/processor/MediaRecordProcessor.java rename to taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/MediaRecordProcessor.java diff --git a/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/audio/MediaDenoiseProcessor.java b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/audio/MediaDenoiseProcessor.java similarity index 100% rename from taoyao-media/src/main/java/com/acgist/taoyao/media/processor/audio/MediaDenoiseProcessor.java rename to taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/audio/MediaDenoiseProcessor.java diff --git a/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/audio/MediaMixProcessor.java b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/audio/MediaMixProcessor.java similarity index 100% rename from taoyao-media/src/main/java/com/acgist/taoyao/media/processor/audio/MediaMixProcessor.java rename to taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/audio/MediaMixProcessor.java diff --git a/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/audio/MediaWhineProcessor.java b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/audio/MediaWhineProcessor.java similarity index 100% rename from taoyao-media/src/main/java/com/acgist/taoyao/media/processor/audio/MediaWhineProcessor.java rename to taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/audio/MediaWhineProcessor.java diff --git a/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/video/MediaBeautyProcessor.java b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/video/MediaBeautyProcessor.java similarity index 100% rename from taoyao-media/src/main/java/com/acgist/taoyao/media/processor/video/MediaBeautyProcessor.java rename to taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/video/MediaBeautyProcessor.java diff --git a/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/video/MediaMarkHandler.java b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/video/MediaMarkHandler.java similarity index 100% rename from taoyao-media/src/main/java/com/acgist/taoyao/media/processor/video/MediaMarkHandler.java rename to taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/video/MediaMarkHandler.java diff --git a/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/video/MediaWatermarkHandler.java b/taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/video/MediaWatermarkHandler.java similarity index 100% rename from taoyao-media/src/main/java/com/acgist/taoyao/media/processor/video/MediaWatermarkHandler.java rename to taoyao-signal/taoyao-media/src/main/java/com/acgist/taoyao/media/processor/video/MediaWatermarkHandler.java diff --git a/taoyao-meeting/pom.xml b/taoyao-signal/taoyao-meeting/pom.xml similarity index 100% rename from taoyao-meeting/pom.xml rename to taoyao-signal/taoyao-meeting/pom.xml diff --git a/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/Meeting.java b/taoyao-signal/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/Meeting.java similarity index 100% rename from taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/Meeting.java rename to taoyao-signal/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/Meeting.java diff --git a/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/MeetingListenerAdapter.java b/taoyao-signal/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/MeetingListenerAdapter.java similarity index 100% rename from taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/MeetingListenerAdapter.java rename to taoyao-signal/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/MeetingListenerAdapter.java diff --git a/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/MeetingManager.java b/taoyao-signal/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/MeetingManager.java similarity index 100% rename from taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/MeetingManager.java rename to taoyao-signal/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/MeetingManager.java diff --git a/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/controller/MeetingController.java b/taoyao-signal/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/controller/MeetingController.java similarity index 100% rename from taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/controller/MeetingController.java rename to taoyao-signal/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/controller/MeetingController.java diff --git a/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/listener/MeetingCreateListener.java b/taoyao-signal/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/listener/MeetingCreateListener.java similarity index 100% rename from taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/listener/MeetingCreateListener.java rename to taoyao-signal/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/listener/MeetingCreateListener.java diff --git a/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/listener/MeetingEnterListener.java b/taoyao-signal/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/listener/MeetingEnterListener.java similarity index 100% rename from taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/listener/MeetingEnterListener.java rename to taoyao-signal/taoyao-meeting/src/main/java/com/acgist/taoyao/meeting/listener/MeetingEnterListener.java diff --git a/taoyao-node/README.md b/taoyao-signal/taoyao-node/README.md similarity index 100% rename from taoyao-node/README.md rename to taoyao-signal/taoyao-node/README.md diff --git a/taoyao-node/pom.xml b/taoyao-signal/taoyao-node/pom.xml similarity index 100% rename from taoyao-node/pom.xml rename to taoyao-signal/taoyao-node/pom.xml diff --git a/taoyao-signal/taoyao-node/src/main/java/com/acgist/taoyao/node/config/NodeAutoConfiguration.java b/taoyao-signal/taoyao-node/src/main/java/com/acgist/taoyao/node/config/NodeAutoConfiguration.java new file mode 100644 index 0000000..ec87d00 --- /dev/null +++ b/taoyao-signal/taoyao-node/src/main/java/com/acgist/taoyao/node/config/NodeAutoConfiguration.java @@ -0,0 +1,45 @@ +package com.acgist.taoyao.node.config; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Configuration; + +/** + * 集群自动配置 + * + * @author acgist + */ +@Configuration +@ConditionalOnProperty(prefix = "taoyao.node", name = "enabled", havingValue = "true", matchIfMissing = false) +public class NodeAutoConfiguration { + +// @Bean +// @ConditionalOnMissingBean +// public MediaPublishListener mediaPublishListener() { +// return new MediaPublishListener(); +// } +// +// @Bean +// @ConditionalOnMissingBean +// public MediaSubscribeListener mediaSubscribeListener() { +// return new MediaSubscribeListener(); +// } +// +// @Bean +// @ConditionalOnMissingBean +// public MediaOfferListener mediaOfferListener() { +// return new MediaOfferListener(); +// } +// +// @Bean +// @ConditionalOnMissingBean +// public MediaAnswerListener mediaAnswerListener() { +// return new MediaAnswerListener(); +// } +// +// @Bean +// @ConditionalOnMissingBean +// public MediaCandidateListener mediaCandidateListener() { +// return new MediaCandidateListener(); +// } + +} diff --git a/taoyao-signal/taoyao-node/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/taoyao-signal/taoyao-node/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..6e84b07 --- /dev/null +++ b/taoyao-signal/taoyao-node/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.acgist.taoyao.node.config.NodeAutoConfiguration \ No newline at end of file diff --git a/taoyao-server/pom.xml b/taoyao-signal/taoyao-server/pom.xml similarity index 100% rename from taoyao-server/pom.xml rename to taoyao-signal/taoyao-server/pom.xml diff --git a/taoyao-server/src/main/java/com/acgist/taoyao/config/TaoyaoAutoConfiguration.java b/taoyao-signal/taoyao-server/src/main/java/com/acgist/taoyao/config/TaoyaoAutoConfiguration.java similarity index 100% rename from taoyao-server/src/main/java/com/acgist/taoyao/config/TaoyaoAutoConfiguration.java rename to taoyao-signal/taoyao-server/src/main/java/com/acgist/taoyao/config/TaoyaoAutoConfiguration.java diff --git a/taoyao-server/src/main/java/com/acgist/taoyao/controller/ConfigController.java b/taoyao-signal/taoyao-server/src/main/java/com/acgist/taoyao/controller/ConfigController.java similarity index 100% rename from taoyao-server/src/main/java/com/acgist/taoyao/controller/ConfigController.java rename to taoyao-signal/taoyao-server/src/main/java/com/acgist/taoyao/controller/ConfigController.java diff --git a/taoyao-server/src/main/java/com/acgist/taoyao/interceptor/SecurityInterceptor.java b/taoyao-signal/taoyao-server/src/main/java/com/acgist/taoyao/interceptor/SecurityInterceptor.java similarity index 100% rename from taoyao-server/src/main/java/com/acgist/taoyao/interceptor/SecurityInterceptor.java rename to taoyao-signal/taoyao-server/src/main/java/com/acgist/taoyao/interceptor/SecurityInterceptor.java diff --git a/taoyao-server/src/main/java/com/acgist/taoyao/interceptor/SlowInterceptor.java b/taoyao-signal/taoyao-server/src/main/java/com/acgist/taoyao/interceptor/SlowInterceptor.java similarity index 100% rename from taoyao-server/src/main/java/com/acgist/taoyao/interceptor/SlowInterceptor.java rename to taoyao-signal/taoyao-server/src/main/java/com/acgist/taoyao/interceptor/SlowInterceptor.java diff --git a/taoyao-server/src/main/java/com/acgist/taoyao/main/TaoyaoApplication.java b/taoyao-signal/taoyao-server/src/main/java/com/acgist/taoyao/main/TaoyaoApplication.java similarity index 100% rename from taoyao-server/src/main/java/com/acgist/taoyao/main/TaoyaoApplication.java rename to taoyao-signal/taoyao-server/src/main/java/com/acgist/taoyao/main/TaoyaoApplication.java diff --git a/taoyao-server/src/main/resources/application-dev.yml b/taoyao-signal/taoyao-server/src/main/resources/application-dev.yml similarity index 100% rename from taoyao-server/src/main/resources/application-dev.yml rename to taoyao-signal/taoyao-server/src/main/resources/application-dev.yml diff --git a/taoyao-server/src/main/resources/application-release.yml b/taoyao-signal/taoyao-server/src/main/resources/application-release.yml similarity index 100% rename from taoyao-server/src/main/resources/application-release.yml rename to taoyao-signal/taoyao-server/src/main/resources/application-release.yml diff --git a/taoyao-server/src/main/resources/application.yml b/taoyao-signal/taoyao-server/src/main/resources/application.yml similarity index 100% rename from taoyao-server/src/main/resources/application.yml rename to taoyao-signal/taoyao-server/src/main/resources/application.yml diff --git a/taoyao-server/src/main/resources/static/css/font.min.css b/taoyao-signal/taoyao-server/src/main/resources/static/css/font.min.css similarity index 100% rename from taoyao-server/src/main/resources/static/css/font.min.css rename to taoyao-signal/taoyao-server/src/main/resources/static/css/font.min.css diff --git a/taoyao-server/src/main/resources/static/css/style.css b/taoyao-signal/taoyao-server/src/main/resources/static/css/style.css similarity index 100% rename from taoyao-server/src/main/resources/static/css/style.css rename to taoyao-signal/taoyao-server/src/main/resources/static/css/style.css diff --git a/taoyao-server/src/main/resources/static/favicon.ico b/taoyao-signal/taoyao-server/src/main/resources/static/favicon.ico similarity index 100% rename from taoyao-server/src/main/resources/static/favicon.ico rename to taoyao-signal/taoyao-server/src/main/resources/static/favicon.ico diff --git a/taoyao-server/src/main/resources/static/fonts/taoyao.svg b/taoyao-signal/taoyao-server/src/main/resources/static/fonts/taoyao.svg similarity index 100% rename from taoyao-server/src/main/resources/static/fonts/taoyao.svg rename to taoyao-signal/taoyao-server/src/main/resources/static/fonts/taoyao.svg diff --git a/taoyao-server/src/main/resources/static/fonts/taoyao.ttf b/taoyao-signal/taoyao-server/src/main/resources/static/fonts/taoyao.ttf similarity index 100% rename from taoyao-server/src/main/resources/static/fonts/taoyao.ttf rename to taoyao-signal/taoyao-server/src/main/resources/static/fonts/taoyao.ttf diff --git a/taoyao-server/src/main/resources/static/fonts/taoyao.woff b/taoyao-signal/taoyao-server/src/main/resources/static/fonts/taoyao.woff similarity index 100% rename from taoyao-server/src/main/resources/static/fonts/taoyao.woff rename to taoyao-signal/taoyao-server/src/main/resources/static/fonts/taoyao.woff diff --git a/taoyao-server/src/main/resources/static/index.html b/taoyao-signal/taoyao-server/src/main/resources/static/index.html similarity index 100% rename from taoyao-server/src/main/resources/static/index.html rename to taoyao-signal/taoyao-server/src/main/resources/static/index.html diff --git a/taoyao-server/src/main/resources/static/javascript/taoyao.js b/taoyao-signal/taoyao-server/src/main/resources/static/javascript/taoyao.js similarity index 100% rename from taoyao-server/src/main/resources/static/javascript/taoyao.js rename to taoyao-signal/taoyao-server/src/main/resources/static/javascript/taoyao.js diff --git a/taoyao-server/src/main/resources/static/live.html b/taoyao-signal/taoyao-server/src/main/resources/static/live.html similarity index 100% rename from taoyao-server/src/main/resources/static/live.html rename to taoyao-signal/taoyao-server/src/main/resources/static/live.html diff --git a/taoyao-server/src/main/resources/static/meeting.html b/taoyao-signal/taoyao-server/src/main/resources/static/meeting.html similarity index 100% rename from taoyao-server/src/main/resources/static/meeting.html rename to taoyao-signal/taoyao-server/src/main/resources/static/meeting.html diff --git a/taoyao-server/src/main/resources/taoyao.jks b/taoyao-signal/taoyao-server/src/main/resources/taoyao.jks similarity index 100% rename from taoyao-server/src/main/resources/taoyao.jks rename to taoyao-signal/taoyao-server/src/main/resources/taoyao.jks diff --git a/taoyao-server/src/test/java/com/acgist/taoyao/annotation/CostedTest.java b/taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/annotation/CostedTest.java similarity index 100% rename from taoyao-server/src/test/java/com/acgist/taoyao/annotation/CostedTest.java rename to taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/annotation/CostedTest.java diff --git a/taoyao-server/src/test/java/com/acgist/taoyao/annotation/CostedTestTestExecutionListener.java b/taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/annotation/CostedTestTestExecutionListener.java similarity index 100% rename from taoyao-server/src/test/java/com/acgist/taoyao/annotation/CostedTestTestExecutionListener.java rename to taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/annotation/CostedTestTestExecutionListener.java diff --git a/taoyao-server/src/test/java/com/acgist/taoyao/annotation/TaoyaoTest.java b/taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/annotation/TaoyaoTest.java similarity index 100% rename from taoyao-server/src/test/java/com/acgist/taoyao/annotation/TaoyaoTest.java rename to taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/annotation/TaoyaoTest.java diff --git a/taoyao-server/src/test/java/com/acgist/taoyao/boot/service/IdServiceTest.java b/taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/boot/service/IdServiceTest.java similarity index 100% rename from taoyao-server/src/test/java/com/acgist/taoyao/boot/service/IdServiceTest.java rename to taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/boot/service/IdServiceTest.java diff --git a/taoyao-server/src/test/java/com/acgist/taoyao/main/TaoyaoApplicationTests.java b/taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/main/TaoyaoApplicationTests.java similarity index 100% rename from taoyao-server/src/test/java/com/acgist/taoyao/main/TaoyaoApplicationTests.java rename to taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/main/TaoyaoApplicationTests.java diff --git a/taoyao-server/src/test/java/com/acgist/taoyao/signal/SignalTest.java b/taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/signal/SignalTest.java similarity index 100% rename from taoyao-server/src/test/java/com/acgist/taoyao/signal/SignalTest.java rename to taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/signal/SignalTest.java diff --git a/taoyao-server/src/test/java/com/acgist/taoyao/signal/WebSocketClient.java b/taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/signal/WebSocketClient.java similarity index 100% rename from taoyao-server/src/test/java/com/acgist/taoyao/signal/WebSocketClient.java rename to taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/signal/WebSocketClient.java diff --git a/taoyao-server/src/test/java/com/acgist/taoyao/signal/protocol/ScriptProtocolTest.java b/taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/signal/protocol/ScriptProtocolTest.java similarity index 100% rename from taoyao-server/src/test/java/com/acgist/taoyao/signal/protocol/ScriptProtocolTest.java rename to taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/signal/protocol/ScriptProtocolTest.java diff --git a/taoyao-server/src/test/java/com/acgist/taoyao/signal/protocol/ShutdownProtocolTest.java b/taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/signal/protocol/ShutdownProtocolTest.java similarity index 100% rename from taoyao-server/src/test/java/com/acgist/taoyao/signal/protocol/ShutdownProtocolTest.java rename to taoyao-signal/taoyao-server/src/test/java/com/acgist/taoyao/signal/protocol/ShutdownProtocolTest.java diff --git a/taoyao-signal/taoyao-signal/README.md b/taoyao-signal/taoyao-signal/README.md new file mode 100644 index 0000000..004f1e7 --- /dev/null +++ b/taoyao-signal/taoyao-signal/README.md @@ -0,0 +1,402 @@ +# 信令 + +## 信令格式 + +``` +{ + "header": { + "v": "版本", + "id": 请求标识, + "sn": "设备标识" + "pid": 信令标识, + }, + "code": "响应编码", + "message": "响应描述", + "body": { + // 信令主体 + } +} +``` + +### 符号解释 + +``` +-> 单播:定向传播信令 +-) 广播:广播信令(排除自己) ++) 全员广播:广播信令(包含自己) +``` + +## 平台信令(1000~1999) + +### 关闭服务信令(1000) + +#### 消息主体 + +``` +# 请求 +{} +# 广播 +{} +``` + +#### 消息流程:终端->服务端+)终端 + +全员广播[关闭服务信令](#关闭服务信令1000),然后关闭信令服务。 + +### 执行命令信令(1001) + +#### 消息主体 + +``` +# 请求 +{ + "script": "命令" +} +# 响应 +{ + "result": "结果" +} +``` + +#### 消息流程:终端->服务端->终端 + +执行命令同时响应结果 + +### 异常信令(1999) + +#### 消息主体 + +``` +{} +``` + +## 终端信令(2000~2999) + +### 终端信息 + +### 终端注册信令(2000) + +#### 消息主体 + +``` +# 请求 +{ + "username": "信令授权用户", + "password": "信令授权密码", + "ip": "IP地址", + "mac": "MAC地址", + "signal": "信号强度", + "battery": "电池电量" +} +# 响应 +{} +# 广播 +{ + "sn": "终端标识", + "ip": "IP地址", + "mac": "MAC地址", + "signal": "信号强度", + "battery": "电池电量" +} +``` + +#### 消息流程:终端->服务端-)终端 + +终端注册成功以后响应同时[下发配置信令](#下发配置信令2004),并且广播[终端上线信令](#终端上线信令2002)。 + +### 终端关闭信令(2001) + +#### 消息主体 + +``` +# 请求 +{} +# 广播 +{ + "sn": "终端标识" +} +``` + +#### 消息流程:终端-)服务端 + +终端关闭以后广播[终端下线信令](#终端下线信令2003),同时释放所有相关资源(信令通道、媒体通道等等) + +### 终端上线信令(2002) + +#### 消息主体 + +``` +{ + "sn": "终端标识" +} +``` + +#### 消息流程:服务端->终端 + +参考[终端注册信令](#终端注册信令2000) + +### 终端下线信令(2003) + +#### 消息主体 + +``` +{ + "sn": "终端标识" +} +``` + +#### 消息流程:服务端->终端 + +参考[终端关闭信令](#终端关闭信令2001) + +### 下发配置信令(2004) + +#### 消息主体 + +``` +{ + "time": "系统时间:yyyyMMddHHmmss", + "media": "媒体配置", + "webrtc": "WebRTC配置" +} +``` + +#### 消息流程:服务端->终端 + +参考[终端注册信令](#终端注册信令2000) + +### 心跳信令(2005) + +#### 消息主体 + +``` +# 请求 +{ + "signal": "信号强度", + "battery": "电池电量" +} +# 响应 +{} +``` + +#### 消息流程:终端->服务端->终端 + +### 单播信令(2006) + +#### 消息主体 + +``` +# 请求 +{ + "to": "接收终端标识", + // 主体信息 +} +# 转发 +{ + // 主体信息 +} +``` + +#### 消息流程:终端->服务端->终端 + +终端转发信令到指定的终端 + +### 广播信令(2007) + +#### 消息主体 + +``` +# 请求 +{ + // 主体信息 +} +# 广播 +{ + // 主体信息 +} +``` + +#### 消息流程:终端->服务端-)终端 + +终端广播信令到所有的终端 + +### 重启终端信令(2997) + +#### 消息主体 + +``` +# 请求 +{ +} +``` + +#### 消息流程:服务器->终端 + +重启终端 + +### 终端状态信令(2998) + +#### 消息主体 + +``` +# 请求 +{ + "sn": "终端标识" +} +# 响应 +{ + "sn": "终端标识", + "ip": "IP地址", + "mac": "MAC地址", + "signal": "信号强度", + "battery": "电池电量" +} +``` + +#### 消息流程:终端->服务端->终端 + +响应指定终端状态(如果没有指定终端标识默认查询自己) + +### 终端列表信令(2999) + +#### 消息主体 + +``` +# 请求 +{} +# 响应 +[ + { + "sn": "终端标识", + "ip": "IP地址", + "mac": "MAC地址", + "signal": "信号强度", + "battery": "电池电量" + }, + ... +] +``` + +#### 消息流程:终端->服务端->终端 + +响应所有终端状态列表 + +## 直播信令(3000~3999) + +### 开启直播信令(3000) + +### 关闭直播信令(3001) + +### 直播广播信令(3002) + +### 直播终端列表信令(3997) + +### 直播状态信令(3998) + +### 直播列表信令(3999) + +## 会议信令(4000~4999) + +### 创建会议信令(4000) + +#### 消息主体 + +``` +{} +---- +{ + "id": "会议标识" +} +``` + +#### 消息流程:终端->服务端+)终端 + +### 关闭会议信令(4001) + +释放资源、广播广播 + +### 进入会议信令(4002) + +#### 消息主体 + +``` +# 请求 +{ + "id": "会议标识" +} +# 广播 +{ + "id": "会议标识", + "sn": "终端标识" +} +``` + +#### 消息流程:终端->服务端-)终端 + +终端进入会议,广播通知其他终端。 + +### 离开会议信令(4003) + +广播 + +### 邀请终端信令(4004) + +邀请终端进入会议,终端确认进入发送进入会议信令。 + +### 踢出终端信令(4005) + +广播 + +### 会议广播信令(4006) + +### 会议终端列表信令(4997) + +### 会议状态信令(4998) + +### 会议列表信令(4999) + +## 媒体信令(5000~5999) + +### 发布信令(5000) + +控制终端推流(服务端拉流) + +### 取消发布指令(5001) + +控制终端暂停推流(服务端取消拉流) + +### 订阅指令(5002) + +订阅终端媒体流(终端拉流) + +### 取消订阅指令(5003) + +取消订阅终端媒体流(终端取消拉流) + +### 暂停信令(5004) + +终端->服务端 +暂停发布、订阅(不关媒体流通道) +Moon模式有效 + +### 恢复信令(5005) + +终端->服务端 +暂停发布、订阅(不关媒体流通道) +Moon模式有效 + +### 开启录像信令(5006) + +### 停止录像信令(5007) + +### 配置媒体信令(5008) + +配置订阅媒体:码率、帧率、分辨率等等 + +## 测试 + +``` +let socket = new WebSocket("wss://localhost:8888/websocket.signal"); +socket.send('{"header":{"pid":2000,"v":"1.0.0","id":"1","sn":"taoyao"},"body":{"username":"taoyao","password":"taoyao"}}'); +socket.send('{"header":{"pid":1000,"v":"1.0.0","id":"1","sn":"taoyao"},"body":{}}'); +``` \ No newline at end of file diff --git a/taoyao-webrtc/pom.xml b/taoyao-signal/taoyao-signal/pom.xml similarity index 52% rename from taoyao-webrtc/pom.xml rename to taoyao-signal/taoyao-signal/pom.xml index 8b7f4e0..49d3adb 100644 --- a/taoyao-webrtc/pom.xml +++ b/taoyao-signal/taoyao-signal/pom.xml @@ -10,22 +10,24 @@ 1.0.0 - taoyao-webrtc - pom + taoyao-signal + jar - taoyao-webrtc - WebRTC模块 - - - taoyao-webrtc-mesh - taoyao-webrtc-moon - taoyao-webrtc-kurento - + taoyao-signal + 信令:信令服务 com.acgist - taoyao-signal + taoyao-boot + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-websocket diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSession.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSession.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSession.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSession.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSessionAdapter.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSessionAdapter.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSessionAdapter.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSessionAdapter.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSessionManager.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSessionManager.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSessionManager.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSessionManager.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSessionStatus.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSessionStatus.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSessionStatus.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSessionStatus.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/socket/SocketSession.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/socket/SocketSession.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/socket/SocketSession.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/socket/SocketSession.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/socket/SocketSignal.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/socket/SocketSignal.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/socket/SocketSignal.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/socket/SocketSignal.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/websocket/WebSocketSession.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/websocket/WebSocketSession.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/websocket/WebSocketSession.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/websocket/WebSocketSession.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/websocket/WebSocketSignal.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/websocket/WebSocketSignal.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/websocket/WebSocketSignal.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/websocket/WebSocketSignal.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/config/SignalAutoConfiguration.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/config/SignalAutoConfiguration.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/config/SignalAutoConfiguration.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/config/SignalAutoConfiguration.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/controller/ClientController.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/controller/ClientController.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/controller/ClientController.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/controller/ClientController.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/ApplicationEventAdapter.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/ApplicationEventAdapter.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/ApplicationEventAdapter.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/ApplicationEventAdapter.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/client/ClientCloseEvent.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/client/ClientCloseEvent.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/client/ClientCloseEvent.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/client/ClientCloseEvent.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/client/ClientRegisterEvent.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/client/ClientRegisterEvent.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/client/ClientRegisterEvent.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/client/ClientRegisterEvent.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaAnswerEvent.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaAnswerEvent.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaAnswerEvent.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaAnswerEvent.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaCandidateEvent.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaCandidateEvent.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaCandidateEvent.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaCandidateEvent.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaOfferEvent.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaOfferEvent.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaOfferEvent.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaOfferEvent.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaPublishEvent.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaPublishEvent.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaPublishEvent.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaPublishEvent.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaSubscribeEvent.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaSubscribeEvent.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaSubscribeEvent.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaSubscribeEvent.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/meeting/MeetingCreateEvent.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/meeting/MeetingCreateEvent.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/meeting/MeetingCreateEvent.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/meeting/MeetingCreateEvent.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/meeting/MeetingEnterEvent.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/meeting/MeetingEnterEvent.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/meeting/MeetingEnterEvent.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/meeting/MeetingEnterEvent.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/platform/ScriptEvent.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/platform/ScriptEvent.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/platform/ScriptEvent.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/platform/ScriptEvent.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/ApplicationListenerAdapter.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/ApplicationListenerAdapter.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/ApplicationListenerAdapter.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/ApplicationListenerAdapter.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/MediaListenerAdapter.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/MediaListenerAdapter.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/MediaListenerAdapter.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/MediaListenerAdapter.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/client/ClientCloseListener.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/client/ClientCloseListener.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/client/ClientCloseListener.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/client/ClientCloseListener.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/client/ClientRegisterListener.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/client/ClientRegisterListener.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/client/ClientRegisterListener.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/client/ClientRegisterListener.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/platform/ScriptListener.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/platform/ScriptListener.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/platform/ScriptListener.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/listener/platform/ScriptListener.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/MediaRouterManager.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/MediaRouterManager.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/MediaRouterManager.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/MediaRouterManager.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/processor/MediaMixProcessor.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/processor/MediaMixProcessor.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/processor/MediaMixProcessor.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/processor/MediaMixProcessor.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/processor/MediaProcessor.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/processor/MediaProcessor.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/processor/MediaProcessor.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/processor/MediaProcessor.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/processor/ProcessorChain.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/processor/ProcessorChain.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/processor/ProcessorChain.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/processor/ProcessorChain.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/MediaPublisher.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/MediaPublisher.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/MediaPublisher.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/MediaPublisher.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/MediaRouter.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/MediaRouter.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/MediaRouter.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/MediaRouter.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/MediaRouterHandler.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/MediaRouterHandler.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/MediaRouterHandler.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/MediaRouterHandler.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/MediaSubscriber.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/MediaSubscriber.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/MediaSubscriber.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/MediaSubscriber.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/MediaHandler.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/MediaHandler.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/MediaHandler.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/MediaHandler.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/MediaHandlerAdapter.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/MediaHandlerAdapter.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/MediaHandlerAdapter.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/MediaHandlerAdapter.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/MediaStream.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/MediaStream.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/MediaStream.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/MediaStream.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/MediaStreamAdapter.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/MediaStreamAdapter.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/MediaStreamAdapter.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/MediaStreamAdapter.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/Protocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/Protocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/Protocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/Protocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolAdapter.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolAdapter.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolAdapter.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolAdapter.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolJavaAdapter.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolJavaAdapter.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolJavaAdapter.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolJavaAdapter.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolManager.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolManager.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolManager.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolManager.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolMapAdapter.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolMapAdapter.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolMapAdapter.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolMapAdapter.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientBroadcastProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientBroadcastProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientBroadcastProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientBroadcastProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientCloseProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientCloseProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientCloseProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientCloseProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientConfigProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientConfigProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientConfigProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientConfigProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientHeartbeatProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientHeartbeatProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientHeartbeatProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientHeartbeatProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientListProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientListProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientListProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientListProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientOfflineProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientOfflineProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientOfflineProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientOfflineProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientOnlineProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientOnlineProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientOnlineProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientOnlineProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientRebootProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientRebootProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientRebootProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientRebootProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientRegisterProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientRegisterProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientRegisterProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientRegisterProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientStatusProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientStatusProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientStatusProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientStatusProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientUnicastProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientUnicastProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientUnicastProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/client/ClientUnicastProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveClientListProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveClientListProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveClientListProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveClientListProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveCloseProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveCloseProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveCloseProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveCloseProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveListProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveListProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveListProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveListProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveRegisterProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveRegisterProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveRegisterProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveRegisterProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveStatusProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveStatusProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveStatusProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/live/LiveStatusProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaAnswerProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaAnswerProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaAnswerProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaAnswerProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaCandidateProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaCandidateProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaCandidateProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaCandidateProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaOfferProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaOfferProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaOfferProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaOfferProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaPauseProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaPauseProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaPauseProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaPauseProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaPublishProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaPublishProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaPublishProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaPublishProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaResumeProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaResumeProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaResumeProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaResumeProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaStartRecordProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaStartRecordProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaStartRecordProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaStartRecordProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaStopRecordProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaStopRecordProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaStopRecordProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaStopRecordProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaSubscribeProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaSubscribeProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaSubscribeProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaSubscribeProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaUnpublishProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaUnpublishProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaUnpublishProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaUnpublishProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaUnsubscribeProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaUnsubscribeProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaUnsubscribeProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaUnsubscribeProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingClientListProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingClientListProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingClientListProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingClientListProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingCloseProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingCloseProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingCloseProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingCloseProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingCreateProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingCreateProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingCreateProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingCreateProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingEnterProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingEnterProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingEnterProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingEnterProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingExpelProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingExpelProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingExpelProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingExpelProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingInviteProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingInviteProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingInviteProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingInviteProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingLeaveProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingLeaveProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingLeaveProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingLeaveProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingListProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingListProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingListProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingListProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingStatusProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingStatusProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingStatusProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/meeting/MeetingStatusProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/platform/ErrorProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/platform/ErrorProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/platform/ErrorProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/platform/ErrorProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/platform/ScriptProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/platform/ScriptProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/platform/ScriptProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/platform/ScriptProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/platform/ShutdownProtocol.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/platform/ShutdownProtocol.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/platform/ShutdownProtocol.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/platform/ShutdownProtocol.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/service/SecurityService.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/service/SecurityService.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/service/SecurityService.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/service/SecurityService.java diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/service/impl/SecurityServiceImpl.java b/taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/service/impl/SecurityServiceImpl.java similarity index 100% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/service/impl/SecurityServiceImpl.java rename to taoyao-signal/taoyao-signal/src/main/java/com/acgist/taoyao/signal/service/impl/SecurityServiceImpl.java diff --git a/taoyao-signal/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/taoyao-signal/taoyao-signal/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports similarity index 100% rename from taoyao-signal/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename to taoyao-signal/taoyao-signal/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/taoyao-webrtc/taoyao-webrtc-kurento/README.md b/taoyao-webrtc/taoyao-webrtc-kurento/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/taoyao-webrtc/taoyao-webrtc-kurento/pom.xml b/taoyao-webrtc/taoyao-webrtc-kurento/pom.xml deleted file mode 100644 index e823445..0000000 --- a/taoyao-webrtc/taoyao-webrtc-kurento/pom.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - 4.0.0 - - - com.acgist - taoyao-webrtc - 1.0.0 - - - taoyao-webrtc-kurento - jar - - taoyao-webrtc-kurento - WebRTC协议簇实现:kurento - - - - org.kurento - kurento-client - - - - \ No newline at end of file diff --git a/taoyao-webrtc/taoyao-webrtc-mesh/pom.xml b/taoyao-webrtc/taoyao-webrtc-mesh/pom.xml deleted file mode 100644 index 9f1d49e..0000000 --- a/taoyao-webrtc/taoyao-webrtc-mesh/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - 4.0.0 - - - com.acgist - taoyao-webrtc - 1.0.0 - - - taoyao-webrtc-mesh - jar - - taoyao-webrtc-mesh - WebRTC Mesh架构实现 - - - - \ No newline at end of file diff --git a/taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/config/MeshAutoConfiguration.java b/taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/config/MeshAutoConfiguration.java deleted file mode 100644 index c86db44..0000000 --- a/taoyao-webrtc/taoyao-webrtc-mesh/src/main/java/com/acgist/taoyao/webrtc/mesh/config/MeshAutoConfiguration.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.acgist.taoyao.webrtc.mesh.config; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import com.acgist.taoyao.webrtc.mesh.listener.MediaAnswerListener; -import com.acgist.taoyao.webrtc.mesh.listener.MediaCandidateListener; -import com.acgist.taoyao.webrtc.mesh.listener.MediaOfferListener; -import com.acgist.taoyao.webrtc.mesh.listener.MediaPublishListener; -import com.acgist.taoyao.webrtc.mesh.listener.MediaSubscribeListener; - -/** - * Mesh自动配置 - * - * @author acgist - */ -@Configuration -@ConditionalOnProperty(prefix = "taoyao.webrtc", name = "framework", havingValue = "MESH", matchIfMissing = false) -public class MeshAutoConfiguration { - - @Bean - @ConditionalOnMissingBean - public MediaPublishListener mediaPublishListener() { - return new MediaPublishListener(); - } - - @Bean - @ConditionalOnMissingBean - public MediaSubscribeListener mediaSubscribeListener() { - return new MediaSubscribeListener(); - } - - @Bean - @ConditionalOnMissingBean - public MediaOfferListener mediaOfferListener() { - return new MediaOfferListener(); - } - - @Bean - @ConditionalOnMissingBean - public MediaAnswerListener mediaAnswerListener() { - return new MediaAnswerListener(); - } - - @Bean - @ConditionalOnMissingBean - public MediaCandidateListener mediaCandidateListener() { - return new MediaCandidateListener(); - } - -} diff --git a/taoyao-webrtc/taoyao-webrtc-mesh/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/taoyao-webrtc/taoyao-webrtc-mesh/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index 65458e5..0000000 --- a/taoyao-webrtc/taoyao-webrtc-mesh/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1 +0,0 @@ -com.acgist.taoyao.webrtc.mesh.config.MeshAutoConfiguration \ No newline at end of file diff --git a/taoyao-webrtc/taoyao-webrtc-moon/pom.xml b/taoyao-webrtc/taoyao-webrtc-moon/pom.xml deleted file mode 100644 index 83161e4..0000000 --- a/taoyao-webrtc/taoyao-webrtc-moon/pom.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - 4.0.0 - - - com.acgist - taoyao-webrtc - 1.0.0 - - - taoyao-webrtc-moon - jar - - taoyao-webrtc-moon - WebRTC Moon架构实现 - - - - com.acgist - taoyao-webrtc-kurento - - - - \ No newline at end of file diff --git a/taoyao-webrtc/taoyao-webrtc-moon/src/main/java/com/acgist/taoyao/webrtc/moon/config/MoonAutoConfiguration.java b/taoyao-webrtc/taoyao-webrtc-moon/src/main/java/com/acgist/taoyao/webrtc/moon/config/MoonAutoConfiguration.java deleted file mode 100644 index 6592c89..0000000 --- a/taoyao-webrtc/taoyao-webrtc-moon/src/main/java/com/acgist/taoyao/webrtc/moon/config/MoonAutoConfiguration.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.acgist.taoyao.webrtc.moon.config; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.context.annotation.Configuration; - -/** - * MOON自动配置 - * - * @author acgist - */ -@Configuration -@ConditionalOnProperty(prefix = "taoyao.webrtc", name = "framework", havingValue = "MOON", matchIfMissing = false) -public class MoonAutoConfiguration { - -} diff --git a/taoyao-webrtc/taoyao-webrtc-moon/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/taoyao-webrtc/taoyao-webrtc-moon/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports deleted file mode 100644 index 9292344..0000000 --- a/taoyao-webrtc/taoyao-webrtc-moon/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ /dev/null @@ -1 +0,0 @@ -com.acgist.taoyao.webrtc.moon.config.MoonAutoConfiguration \ No newline at end of file