From fd505dfbd2a83e6cba036e3770e310e4d76b9ef5 Mon Sep 17 00:00:00 2001
From: acgist <289547414@qq.com>
Date: Sun, 19 Feb 2023 11:57:09 +0800
Subject: [PATCH] [+] media::transport::webrtc::connect
---
docs/Deploy.md | 7 +-
taoyao-client-web/README.md | 4 +
taoyao-client-web/src/App.vue | 15 +-
taoyao-client-web/src/components/Config.js | 77 +-
.../src/components/LocalClient.vue | 3 +-
taoyao-client-web/src/components/Logger.js | 94 --
.../src/components/SettingRoom.vue | 71 +-
.../src/components/SettingSignal.vue | 38 +-
taoyao-client-web/src/components/Taoyao.js | 653 +++++++++-----
taoyao-client-web/src/taoyao.js | 832 ------------------
.../ecosystem.config.cluster.json | 14 +
taoyao-media-server/ecosystem.config.json | 12 +
taoyao-media-server/src/Logger.js | 93 --
taoyao-media-server/src/Server.js | 48 +-
taoyao-media-server/src/Signal.js | 330 ++++---
.../taoyao/boot/annotation/Description.java | 39 +
.../taoyao/boot/annotation/Protocol.java | 2 +-
.../com/acgist/taoyao/boot/model/Header.java | 4 +-
.../com/acgist/taoyao/boot/model/Message.java | 2 +-
.../taoyao/boot/property}/Constant.java | 42 +-
.../taoyao/boot/property/MediaProperties.java | 4 +-
.../boot/property/MediaVideoProperties.java | 27 +-
.../boot/property/WebrtcProperties.java | 27 +
.../boot/property/WebrtcStunProperties.java | 2 +-
.../boot/property/WebrtcTurnProperties.java | 2 +-
.../taoyao/boot/utils/CloseableUtils.java | 8 +-
.../src/main/resources/application-local.yml | 2 +-
.../taoyao/signal/SocketSignalTest.java | 2 +-
taoyao-signal-server/taoyao-signal/README.md | 389 +-------
.../acgist/taoyao/signal/client/Client.java | 6 +
.../taoyao/signal/client/ClientAdapter.java | 11 +
.../taoyao/signal/client/ClientStatus.java | 6 +-
.../signal/client/socket/SocketClient.java | 2 +-
.../socket/SocketSignalMessageHandler.java | 2 +-
.../client/websocket/WebSocketClient.java | 2 +-
.../WebSocketSignalConfigurator.java | 2 +-
.../signal/controller/ProtocolController.java | 103 +++
.../signal/controller/RoomController.java | 4 +-
.../event/media/MediaRegisterEvent.java | 12 -
.../taoyao/signal/media/MediaClient.java | 10 +-
.../com/acgist/taoyao/signal/media/Peer.java | 16 +-
.../com/acgist/taoyao/signal/media/Room.java | 4 +-
.../taoyao/signal/media/RoomManager.java | 44 +-
.../taoyao/signal/media/RoomStatus.java | 2 +-
.../acgist/taoyao/signal/media/Transport.java | 50 +-
.../signal/protocol/ProtocolRoomAdapter.java | 3 +-
.../client/ClientBroadcastProtocol.java | 2 +
.../protocol/client/ClientCloseProtocol.java | 8 +-
.../protocol/client/ClientConfigProtocol.java | 13 +-
.../client/ClientHeartbeatProtocol.java | 15 +-
.../protocol/client/ClientListProtocol.java | 18 +
.../client/ClientOfflineProtocol.java | 9 +
.../protocol/client/ClientOnlineProtocol.java | 15 +
.../protocol/client/ClientRebootProtocol.java | 4 +
.../client/ClientRegisterProtocol.java | 19 +-
.../protocol/client/ClientStatusProtocol.java | 24 +-
.../client/ClientUnicastProtocol.java | 12 +-
.../ConsumerSetPreferredLayersProtocol.java | 5 -
.../media/ConsumerSetPriorityProtocol.java | 5 -
.../protocol/media/IceRestartProtocol.java | 5 -
...a => MediaAudioActiveSpeakerProtocol.java} | 4 +-
...l.java => MediaConsumerCloseProtocol.java} | 2 +-
...a => MediaConsumerDataStatusProtocol.java} | 2 +-
...l.java => MediaConsumerPauseProtocol.java} | 2 +-
.../MediaConsumerRequestKeyFrameProtocol.java | 5 +
.../media/MediaConsumerResumeProtocol.java | 5 +
...diaConsumerSetPreferredLayersProtocol.java | 5 +
.../MediaConsumerSetPriorityProtocol.java | 5 +
.../media/MediaConsumerStatusProtocol.java | 5 +
...ocol.java => MediaIceRestartProtocol.java} | 2 +-
.../protocol/media/MediaListProtocol.java | 16 +
...col.java => MediaProduceDataProtocol.java} | 2 +-
...rotocol.java => MediaProduceProtocol.java} | 2 +-
...l.java => MediaProducerCloseProtocol.java} | 2 +-
.../MediaProducerDataStatusProtocol.java | 5 +
.../media/MediaProducerPauseProtocol.java | 5 +
.../media/MediaProducerResumeProtocol.java | 5 +
.../media/MediaProducerScoreProtocol.java | 5 +
.../media/MediaProducerStatusProtocol.java | 5 +
.../protocol/media/MediaRebootProtocol.java | 2 +
.../protocol/media/MediaRegisterProtocol.java | 19 +-
...> MediaRouterRtpCapabilitiesProtocol.java} | 25 +-
.../media/MediaTransportStatusProtocol.java | 5 +
... MediaTransportWebRtcConnectProtocol.java} | 23 +-
.../MediaTransportWebRtcCreateProtocol.java | 53 ++
.../MediaVideoOrientationChangeProtocol.java | 5 +
.../protocol/media/ProduceDataProtocol.java | 5 -
.../protocol/media/ProducerCloseProtocol.java | 5 -
.../media/ProducerDataStatusProtocol.java | 5 -
.../protocol/media/ProducerPauseProtocol.java | 5 -
.../media/ProducerResumeProtocol.java | 5 -
.../protocol/media/ProducerScoreProtocol.java | 5 -
.../media/ProducerStatusProtocol.java | 5 -
.../media/TransportStatusProtocol.java | 5 -
.../media/TransportWebRtcConnectProtocol.java | 10 -
.../media/VideoOrientationChangeProtocol.java | 5 -
.../platform/PlatformErrorProtocol.java | 2 +
.../platform/PlatformRebootProtocol.java | 2 +
.../platform/PlatformScriptProtocol.java | 18 +-
.../platform/PlatformShutdownProtocol.java | 2 +
.../protocol/room/RoomCreateProtocol.java | 19 +-
.../protocol/room/RoomEnterProtocol.java | 19 +-
.../protocol/room/RoomListProtocol.java | 14 +
.../protocol/system/SystemRebootProtocol.java | 2 +
.../system/SystemShutdownProtocol.java | 2 +
105 files changed, 1511 insertions(+), 2116 deletions(-)
delete mode 100644 taoyao-client-web/src/components/Logger.js
delete mode 100644 taoyao-client-web/src/taoyao.js
create mode 100644 taoyao-media-server/ecosystem.config.cluster.json
create mode 100644 taoyao-media-server/ecosystem.config.json
delete mode 100644 taoyao-media-server/src/Logger.js
create mode 100644 taoyao-signal-server/taoyao-boot/src/main/java/com/acgist/taoyao/boot/annotation/Description.java
rename taoyao-signal-server/{taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol => taoyao-boot/src/main/java/com/acgist/taoyao/boot/property}/Constant.java (70%)
create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/controller/ProtocolController.java
delete mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/event/media/MediaRegisterEvent.java
delete mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/ConsumerSetPreferredLayersProtocol.java
delete mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/ConsumerSetPriorityProtocol.java
delete mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/IceRestartProtocol.java
rename taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/{AudioActiveSpeakerProtocol.java => MediaAudioActiveSpeakerProtocol.java} (87%)
rename taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/{ConsumerDataStatusProtocol.java => MediaConsumerCloseProtocol.java} (55%)
rename taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/{ConsumerRequestKeyFrameProtocol.java => MediaConsumerDataStatusProtocol.java} (53%)
rename taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/{ConsumerPauseProtocol.java => MediaConsumerPauseProtocol.java} (55%)
create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaConsumerRequestKeyFrameProtocol.java
create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaConsumerResumeProtocol.java
create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaConsumerSetPreferredLayersProtocol.java
create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaConsumerSetPriorityProtocol.java
create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaConsumerStatusProtocol.java
rename taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/{ConsumerCloseProtocol.java => MediaIceRestartProtocol.java} (57%)
rename taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/{ConsumerStatusProtocol.java => MediaProduceDataProtocol.java} (56%)
rename taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/{ProduceProtocol.java => MediaProduceProtocol.java} (59%)
rename taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/{ConsumerResumeProtocol.java => MediaProducerCloseProtocol.java} (55%)
create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaProducerDataStatusProtocol.java
create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaProducerPauseProtocol.java
create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaProducerResumeProtocol.java
create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaProducerScoreProtocol.java
create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaProducerStatusProtocol.java
rename taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/{RouterRtpCapabilitiesProtocol.java => MediaRouterRtpCapabilitiesProtocol.java} (54%)
create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaTransportStatusProtocol.java
rename taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/{TransportWebRtcCreateProtocol.java => MediaTransportWebRtcConnectProtocol.java} (54%)
create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaTransportWebRtcCreateProtocol.java
create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaVideoOrientationChangeProtocol.java
delete mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/ProduceDataProtocol.java
delete mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/ProducerCloseProtocol.java
delete mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/ProducerDataStatusProtocol.java
delete mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/ProducerPauseProtocol.java
delete mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/ProducerResumeProtocol.java
delete mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/ProducerScoreProtocol.java
delete mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/ProducerStatusProtocol.java
delete mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/TransportStatusProtocol.java
delete mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/TransportWebRtcConnectProtocol.java
delete mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/VideoOrientationChangeProtocol.java
diff --git a/docs/Deploy.md b/docs/Deploy.md
index 0517d67..cbbc69e 100644
--- a/docs/Deploy.md
+++ b/docs/Deploy.md
@@ -242,6 +242,11 @@ npm install
pm2 start npm --name "taoyao-media-server" -- run dev | release
pm2 save
+# 配置ecosystem
+pm2 ecosystem
+pm2 start | reload ecosystem.config.json
+pm2 save
+
# 管理服务
pm2 start | stop | restart taoyao-media-server
```
@@ -353,8 +358,6 @@ firewall-cmd --list-ports
## 证书
-正式环境建议关闭项目`SSL`配置,可以使用`Nginx`配置证书。
-
```
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
```
diff --git a/taoyao-client-web/README.md b/taoyao-client-web/README.md
index 8586219..81d5ec2 100644
--- a/taoyao-client-web/README.md
+++ b/taoyao-client-web/README.md
@@ -1,3 +1,7 @@
# Web终端
注意部分`API`需要`localhost`或者`https`
+
+## TODO
+
+按钮:选择房间、媒体服务、开关
diff --git a/taoyao-client-web/src/App.vue b/taoyao-client-web/src/App.vue
index ce548ef..0aff1df 100644
--- a/taoyao-client-web/src/App.vue
+++ b/taoyao-client-web/src/App.vue
@@ -1,11 +1,10 @@
-
+
diff --git a/taoyao-client-web/src/components/Logger.js b/taoyao-client-web/src/components/Logger.js
deleted file mode 100644
index ba5876a..0000000
--- a/taoyao-client-web/src/components/Logger.js
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * 日志
- */
-import moment from "moment";
-import { config } from "./Config.js";
-
-/**
- * 日志
- */
-class Logger {
- constructor(prefix = "") {
- if (prefix) {
- this.name = this.name + " : " + prefix;
- }
- }
-
- // 名称
- name = config.name;
- // 级别
- level = ["DEBUG", "INFO", "WARN", "ERROR", "OFF"];
- // 级别索引
- levelIndex = this.level.indexOf(config.logLevel.toUpperCase());
-
- /**
- * debug
- *
- * @param {...any} args 参数
- *
- * @returns this
- */
- debug(...args) {
- return this.log(console.debug, "37m", "DEBUG", args);
- }
-
- /**
- * info
- *
- * @param {...any} args 参数
- *
- * @returns this
- */
- info(...args) {
- return this.log(console.info, "32m", "INFO", args);
- }
-
- /**
- * warn
- *
- * @param {...any} args 参数
- *
- * @returns this
- */
- warn(...args) {
- return this.log(console.warn, "33m", "WARN", args);
- }
-
- /**
- * error
- *
- * @param {...any} args 参数
- *
- * @returns this
- */
- error(...args) {
- return this.log(console.error, "31m", "ERROR", args);
- }
-
- /**
- * 日志
- *
- * @param {*} out 输出
- * @param {*} color 颜色
- * @param {*} level 级别
- * @param {*} args 参数
- *
- * @returns this
- */
- log(out, color, level, args) {
- if (!args || this.level.indexOf(level) < this.levelIndex) {
- return this;
- }
- if (args.length > 1 && args[0].length > 0) {
- out(`\x1B[${color}${this.name} ${moment().format("yyyy-MM-DD HH:mm:ss")} : [${level.padEnd(5, " ")}] :\x1B[0m`, args);
- } else if (args.length === 1 && args[0].length > 0) {
- out(`\x1B[${color}${this.name} ${moment().format("yyyy-MM-DD HH:mm:ss")} : [${level.padEnd(5, " ")}] :\x1B[0m`, args);
- } else {
- // 其他情况直接输出换行
- out("");
- }
- return this;
- }
-}
-
-export { Logger };
diff --git a/taoyao-client-web/src/components/SettingRoom.vue b/taoyao-client-web/src/components/SettingRoom.vue
index 85d60b4..c0a34f9 100644
--- a/taoyao-client-web/src/components/SettingRoom.vue
+++ b/taoyao-client-web/src/components/SettingRoom.vue
@@ -1,34 +1,35 @@
-
+
-
+
@@ -42,19 +43,23 @@
- 设置
+ 进入
+ 创建