This commit is contained in:
acgist
2023-02-08 21:31:09 +08:00
parent 7889d4f708
commit 50f80bee2d
164 changed files with 2023 additions and 1457 deletions

View File

@@ -1,10 +1,14 @@
const Logger = require("./Logger");
/**
* 信令
* 1. 终端媒体流向
* 2. 处理音频视频:降噪、水印等等
*/
class Signal {
// 信令终端列表
client = [];
// 日志
logger = new Logger();
// Mediasoup Worker列表
mediasoupWorker = [];
// Mediasoup Worker索引
@@ -21,7 +25,59 @@ class Signal {
* @param {*} session websocket
*/
on(message, session) {
// 授权验证
if (!session.authorize) {
if (
message?.header?.signal === "media::register" &&
message?.body?.username === config.https.username &&
message?.body?.password === config.https.password
) {
this.logger.debug("授权成功", session._socket.remoteAddress);
client.push(session);
session.authorize = true;
message.code = "0000";
message.message = "授权成功";
message.body.username = null;
message.body.password = null;
} else {
this.logger.warn("授权失败", session._socket.remoteAddress);
message.code = "3401";
message.message = "授权失败";
}
this.push(message, session);
return;
}
// 处理信令
switch (message.header.signal) {
}
}
/**
* 通知信令
*
* @param {*} message 消息
* @param {*} session websocket
*/
push(message, session) {
try {
session.send(JSON.stringify(message));
} catch (error) {
logger.error(
"通知信令失败",
session._socket.remoteAddress,
message,
error
);
}
}
/**
* 通知信令
*
* @param {*} message 消息
*/
push(message) {
this.client.forEach((session) => this.push(message, session));
}
}