[+] 定义事件
This commit is contained in:
@@ -6,9 +6,6 @@
|
||||
|
||||
```
|
||||
sudo npm install
|
||||
|
||||
# 跳过mediasoup
|
||||
npm install --skip=mediasoup
|
||||
```
|
||||
|
||||
## Mediasoup
|
||||
|
||||
@@ -190,7 +190,6 @@ async function onmessage(message, session) {
|
||||
data.message = "授权失败";
|
||||
session.send(JSON.stringify(data));
|
||||
}
|
||||
// 不要传递授权信息
|
||||
return;
|
||||
}
|
||||
// 处理信令
|
||||
|
||||
@@ -29,6 +29,8 @@
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| taoyao-signal |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| taoyao-node |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| taoyao-boot |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
```
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
### 终端
|
||||
|
||||
#### 授权信息
|
||||
#### 授权信息(6000)
|
||||
|
||||
```
|
||||
```
|
||||
|
||||
@@ -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)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class ApplyNetworkThrottleProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class ChangeDisplayNameProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class CloseProducerProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class ConnectWebRtcTransportProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class CreateWebRtcTransportProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class GetConsumerStatsProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class GetDataConsumerStatsProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class GetDataProducerStatsProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class GetProducerStatsProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class GetTransportStatsProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class NewPeerProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class PauseConsumerProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class PauseProducerProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class ProduceDataProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class ProduceProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class ProducerScoreProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class RequestConsumerKeyFrameProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class ResetNetworkThrottleProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class RestartIceProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class ResumeConsumerProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class ResumeProducerProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class SetConsumerPreferredLayersProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class SetConsumerPriorityProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.mediasoup.protocol.media;
|
||||
|
||||
public class VideoorientationchangeProtocol {
|
||||
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package com.acgist.taoyao.signal.protocol.media;
|
||||
|
||||
public class MediaPauseProtocol {
|
||||
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package com.acgist.taoyao.signal.protocol.media;
|
||||
|
||||
public class MediaResumeProtocol {
|
||||
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package com.acgist.taoyao.signal.protocol.media;
|
||||
|
||||
public class MediaStartRecordProtocol {
|
||||
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package com.acgist.taoyao.signal.protocol.media;
|
||||
|
||||
public class MediaStopRecordProtocol {
|
||||
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package com.acgist.taoyao.signal.protocol.media;
|
||||
|
||||
public class MediaUnpublishProtocol {
|
||||
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package com.acgist.taoyao.signal.protocol.media;
|
||||
|
||||
public class MediaUnsubscribeProtocol {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user