[+] 定义事件

This commit is contained in:
acgist
2023-02-05 10:55:13 +08:00
parent 790666b221
commit 50ee82779e
40 changed files with 146 additions and 188 deletions

View File

@@ -6,9 +6,6 @@
```
sudo npm install
# 跳过mediasoup
npm install --skip=mediasoup
```
## Mediasoup

View File

@@ -190,7 +190,6 @@ async function onmessage(message, session) {
data.message = "授权失败";
session.send(JSON.stringify(data));
}
// 不要传递授权信息
return;
}
// 处理信令

View File

@@ -29,6 +29,8 @@
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| taoyao-signal |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| taoyao-node |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| taoyao-boot |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
```

View File

@@ -22,7 +22,7 @@
### 终端
#### 授权信息
#### 授权信息6000
```
```

View File

@@ -59,6 +59,15 @@ public class MediasoupClient {
@Autowired
private AuthorizeProtocol authorizeProtocol;
/**
* 最大重试次数
*/
private static final int MAX_RETRY = 12;
/**
* 重试次数
*/
private int retry = 1;
/**
* Mediasoup WebSocket通道
*/
@@ -95,7 +104,10 @@ public class MediasoupClient {
.get();
} catch (InterruptedException | ExecutionException e) {
log.error("连接Mediasoup异常{}", uri, e);
this.taskSchedulerl.schedule(this::buildClient, Instant.now().plusSeconds(5));
this.taskSchedulerl.schedule(
this::buildClient,
Instant.now().plusSeconds(Math.min(this.retry++, MAX_RETRY) * 5)
);
}
}
@@ -181,6 +193,8 @@ public class MediasoupClient {
if(MediasoupClient.this.webSocket != null && !(MediasoupClient.this.webSocket.isInputClosed() && MediasoupClient.this.webSocket.isOutputClosed())) {
MediasoupClient.this.webSocket.abort();
}
// 重置重试次数
MediasoupClient.this.retry = 1;
// 设置新的通道
MediasoupClient.this.webSocket = webSocket;
// 发送授权消息
@@ -206,7 +220,10 @@ public class MediasoupClient {
try {
return Listener.super.onClose(webSocket, statusCode, reason);
} finally {
MediasoupClient.this.taskSchedulerl.schedule(MediasoupClient.this::buildClient, Instant.now().plusSeconds(5));
MediasoupClient.this.taskSchedulerl.schedule(
MediasoupClient.this::buildClient,
Instant.now().plusSeconds(Math.min(MediasoupClient.this.retry++, MAX_RETRY) * 5)
);
}
}
@@ -216,7 +233,10 @@ public class MediasoupClient {
try {
Listener.super.onError(webSocket, error);
} finally {
MediasoupClient.this.taskSchedulerl.schedule(MediasoupClient.this::buildClient, Instant.now().plusSeconds(5));
MediasoupClient.this.taskSchedulerl.schedule(
MediasoupClient.this::buildClient,
Instant.now().plusSeconds(Math.min(MediasoupClient.this.retry++, MAX_RETRY) * 5)
);
}
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class ApplyNetworkThrottleProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class ChangeDisplayNameProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class CloseProducerProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class ConnectWebRtcTransportProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class CreateWebRtcTransportProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class GetConsumerStatsProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class GetDataConsumerStatsProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class GetDataProducerStatsProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class GetProducerStatsProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class GetTransportStatsProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class NewPeerProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class PauseConsumerProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class PauseProducerProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class ProduceDataProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class ProduceProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class ProducerScoreProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class RequestConsumerKeyFrameProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class ResetNetworkThrottleProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class RestartIceProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class ResumeConsumerProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class ResumeProducerProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class SetConsumerPreferredLayersProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class SetConsumerPriorityProtocol {
}

View File

@@ -0,0 +1,5 @@
package com.acgist.taoyao.mediasoup.protocol.media;
public class VideoorientationchangeProtocol {
}

View File

@@ -1,30 +0,0 @@
package com.acgist.taoyao.signal.protocol.media;
import java.util.Map;
import com.acgist.taoyao.boot.annotation.Protocol;
import com.acgist.taoyao.boot.model.Message;
import com.acgist.taoyao.signal.client.ClientSession;
import com.acgist.taoyao.signal.event.media.MediaAnswerEvent;
import com.acgist.taoyao.signal.protocol.ProtocolMapAdapter;
/**
* Answer信令
*
* @author acgist
*/
@Protocol
public class MediaAnswerProtocol extends ProtocolMapAdapter {
public static final Integer PID = 5998;
public MediaAnswerProtocol() {
super(PID, "Answer信令");
}
@Override
public void execute(String sn, Map<?, ?> body, Message message, ClientSession session) {
this.publishEvent(new MediaAnswerEvent(sn, body, message, session));
}
}

View File

@@ -1,30 +0,0 @@
package com.acgist.taoyao.signal.protocol.media;
import java.util.Map;
import com.acgist.taoyao.boot.annotation.Protocol;
import com.acgist.taoyao.boot.model.Message;
import com.acgist.taoyao.signal.client.ClientSession;
import com.acgist.taoyao.signal.event.media.MediaCandidateEvent;
import com.acgist.taoyao.signal.protocol.ProtocolMapAdapter;
/**
* 候选信令
*
* @author acgist
*/
@Protocol
public class MediaCandidateProtocol extends ProtocolMapAdapter {
public static final Integer PID = 5999;
public MediaCandidateProtocol() {
super(PID, "候选信令");
}
@Override
public void execute(String sn, Map<?, ?> body, Message message, ClientSession session) {
this.publishEvent(new MediaCandidateEvent(sn, body, message, session));
}
}

View File

@@ -1,30 +0,0 @@
package com.acgist.taoyao.signal.protocol.media;
import java.util.Map;
import com.acgist.taoyao.boot.annotation.Protocol;
import com.acgist.taoyao.boot.model.Message;
import com.acgist.taoyao.signal.client.ClientSession;
import com.acgist.taoyao.signal.event.media.MediaOfferEvent;
import com.acgist.taoyao.signal.protocol.ProtocolMapAdapter;
/**
* Offer信令
*
* @author acgist
*/
@Protocol
public class MediaOfferProtocol extends ProtocolMapAdapter {
public static final Integer PID = 5997;
public MediaOfferProtocol() {
super(PID, "Offer信令");
}
@Override
public void execute(String sn, Map<?, ?> body, Message message, ClientSession session) {
this.publishEvent(new MediaOfferEvent(sn, body, message, session));
}
}

View File

@@ -1,5 +0,0 @@
package com.acgist.taoyao.signal.protocol.media;
public class MediaPauseProtocol {
}

View File

@@ -1,30 +0,0 @@
package com.acgist.taoyao.signal.protocol.media;
import java.util.Map;
import com.acgist.taoyao.boot.annotation.Protocol;
import com.acgist.taoyao.boot.model.Message;
import com.acgist.taoyao.signal.client.ClientSession;
import com.acgist.taoyao.signal.event.media.MediaPublishEvent;
import com.acgist.taoyao.signal.protocol.ProtocolMapAdapter;
/**
* 发布信令
*
* @author acgist
*/
@Protocol
public class MediaPublishProtocol extends ProtocolMapAdapter {
public static final Integer PID = 5000;
public MediaPublishProtocol() {
super(PID, "发布信令");
}
@Override
public void execute(String sn, Map<?, ?> body, Message message, ClientSession session) {
this.publishEvent(new MediaPublishEvent(sn, body, message, session));
}
}

View File

@@ -1,5 +0,0 @@
package com.acgist.taoyao.signal.protocol.media;
public class MediaResumeProtocol {
}

View File

@@ -1,5 +0,0 @@
package com.acgist.taoyao.signal.protocol.media;
public class MediaStartRecordProtocol {
}

View File

@@ -1,5 +0,0 @@
package com.acgist.taoyao.signal.protocol.media;
public class MediaStopRecordProtocol {
}

View File

@@ -1,30 +0,0 @@
package com.acgist.taoyao.signal.protocol.media;
import java.util.Map;
import com.acgist.taoyao.boot.annotation.Protocol;
import com.acgist.taoyao.boot.model.Message;
import com.acgist.taoyao.signal.client.ClientSession;
import com.acgist.taoyao.signal.event.media.MediaSubscribeEvent;
import com.acgist.taoyao.signal.protocol.ProtocolMapAdapter;
/**
* 订阅指令
*
* @author acgist
*/
@Protocol
public class MediaSubscribeProtocol extends ProtocolMapAdapter {
public static final Integer PID = 5002;
public MediaSubscribeProtocol() {
super(PID, "订阅指令");
}
@Override
public void execute(String sn, Map<?, ?> body, Message message, ClientSession session) {
this.publishEvent(new MediaSubscribeEvent(sn, body, message, session));
}
}

View File

@@ -1,5 +0,0 @@
package com.acgist.taoyao.signal.protocol.media;
public class MediaUnpublishProtocol {
}

View File

@@ -1,5 +0,0 @@
package com.acgist.taoyao.signal.protocol.media;
public class MediaUnsubscribeProtocol {
}