[*] 日常优化
This commit is contained in:
10
docs/TODO.md
10
docs/TODO.md
@@ -28,6 +28,15 @@
|
|||||||
* 排版优化:优化顺序
|
* 排版优化:优化顺序
|
||||||
* 代码优化:逻辑调整、性能优化、安全优化、增强稳定性
|
* 代码优化:逻辑调整、性能优化、安全优化、增强稳定性
|
||||||
|
|
||||||
|
## Mediasoup功能集成
|
||||||
|
|
||||||
|
持续集成`mediasoup`功能:
|
||||||
|
|
||||||
|
* 上次集成`mediasoup-demo`日期:`2023-06-19`
|
||||||
|
* 上次集成`libmediasoupclient`日期:`2023-06-19`
|
||||||
|
|
||||||
|
> `mediasoup-demo`包含`mediasoup`和`mediasoup-client`
|
||||||
|
|
||||||
## 计划任务
|
## 计划任务
|
||||||
|
|
||||||
* E2E
|
* E2E
|
||||||
@@ -44,4 +53,3 @@
|
|||||||
* 浏览器WebRTC监控页面关闭:`chrome://webrtc-internals/`
|
* 浏览器WebRTC监控页面关闭:`chrome://webrtc-internals/`
|
||||||
|
|
||||||
## 完成任务
|
## 完成任务
|
||||||
|
|
||||||
|
|||||||
Submodule taoyao-client-android/libmediasoupclient updated: 55d724ff8b...48768ba90d
@@ -24,7 +24,6 @@ module.exports = {
|
|||||||
// 信令地址
|
// 信令地址
|
||||||
host: "127.0.0.1",
|
host: "127.0.0.1",
|
||||||
// host: "192.168.1.100",
|
// host: "192.168.1.100",
|
||||||
// host: "192.168.8.100",
|
|
||||||
// 信令端口
|
// 信令端口
|
||||||
port: 8888,
|
port: 8888,
|
||||||
// 信令协议
|
// 信令协议
|
||||||
|
|||||||
@@ -9,66 +9,70 @@ process.title = config.name;
|
|||||||
// 禁止校验无效证书
|
// 禁止校验无效证书
|
||||||
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
|
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
|
||||||
|
|
||||||
// Mediasoup Worker列表
|
// 工作线程
|
||||||
const mediasoupWorkers = [];
|
const mediasoupWorkers = [];
|
||||||
// 桃夭
|
// 桃夭信令
|
||||||
const taoyao = new Taoyao(mediasoupWorkers);
|
const taoyao = new Taoyao(mediasoupWorkers);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建Mediasoup Worker列表
|
* 创建工作线程
|
||||||
*/
|
*/
|
||||||
async function buildMediasoupWorkers() {
|
async function buildMediasoupWorkers() {
|
||||||
// 监听事件
|
mediasoup.observer.on("newworker", (worker) => {
|
||||||
// mediasoup.observer.on("newworker", fn(worker));
|
console.info("mediasoup newworker", worker);
|
||||||
|
});
|
||||||
const { workerSize } = config.mediasoup;
|
const { workerSize } = config.mediasoup;
|
||||||
console.info("创建Mediasoup Worker数量:", workerSize);
|
console.info("工作线程数量", workerSize);
|
||||||
for (let index = 0; index < workerSize; index++) {
|
for (let index = 0; index < workerSize; index++) {
|
||||||
|
// 创建工作线程
|
||||||
const worker = await mediasoup.createWorker({
|
const worker = await mediasoup.createWorker({
|
||||||
logTags: config.mediasoup.workerSettings.logTags,
|
logTags : config.mediasoup.workerSettings.logTags,
|
||||||
logLevel: config.mediasoup.workerSettings.logLevel,
|
logLevel : config.mediasoup.workerSettings.logLevel,
|
||||||
rtcMinPort: Number(config.mediasoup.workerSettings.rtcMinPort),
|
rtcMinPort: Number(config.mediasoup.workerSettings.rtcMinPort),
|
||||||
rtcMaxPort: Number(config.mediasoup.workerSettings.rtcMaxPort),
|
rtcMaxPort: Number(config.mediasoup.workerSettings.rtcMaxPort),
|
||||||
});
|
});
|
||||||
// 配置WebRTC服务
|
// 监听事件
|
||||||
const webRtcServerOptions = JSON.parse(
|
|
||||||
JSON.stringify(config.mediasoup.webRtcServerOptions)
|
|
||||||
);
|
|
||||||
for (const listenInfo of webRtcServerOptions.listenInfos) {
|
|
||||||
listenInfo.port = listenInfo.port + mediasoupWorkers.length;
|
|
||||||
}
|
|
||||||
const webRtcServer = await worker.createWebRtcServer(webRtcServerOptions);
|
|
||||||
worker.appData.webRtcServer = webRtcServer;
|
|
||||||
mediasoupWorkers.push(worker);
|
|
||||||
worker.on("died", (error) => {
|
worker.on("died", (error) => {
|
||||||
console.warn("worker died:", worker.pid, error);
|
// 正常情况不会出现
|
||||||
setTimeout(() => process.exit(1), 2000);
|
console.error("worker died", worker.pid, error);
|
||||||
});
|
});
|
||||||
worker.observer.on("close", () => {
|
worker.observer.on("close", () => {
|
||||||
console.info("worker close:", worker.pid);
|
console.debug("worker close", worker.pid);
|
||||||
});
|
});
|
||||||
// worker.observer.on("newrouter", (router) => {
|
worker.observer.on("newrouter", (router) => {
|
||||||
// console.info("worker newrouter:", worker.pid, router.id);
|
console.debug("worker newrouter", worker.pid, router.id);
|
||||||
// });
|
});
|
||||||
// worker.observer.on("newwebrtcserver", (webRtcServer) => {
|
worker.observer.on("newwebrtcserver", (webRtcServer) => {
|
||||||
// console.info("worker newwebrtcserver:", worker.pid, webRtcServer.id);
|
console.debug("worker newwebrtcserver", worker.pid, webRtcServer.id);
|
||||||
// });
|
});
|
||||||
// webRtcServer.on("workerclose", () => {
|
// 创建WebRTC服务
|
||||||
// console.info("webRtcServer workerclose:", worker.pid, webRtcServer.id);
|
const webRtcServerOptions = JSON.parse(JSON.stringify(config.mediasoup.webRtcServerOptions));
|
||||||
// });
|
for (const listenInfos of webRtcServerOptions.listenInfos) {
|
||||||
// webRtcServer.observer.on("close", () => {
|
listenInfos.port = listenInfos.port + mediasoupWorkers.length;
|
||||||
// console.info("webRtcServer close:", worker.pid, webRtcServer.id);
|
}
|
||||||
// });
|
const webRtcServer = await worker.createWebRtcServer(webRtcServerOptions);
|
||||||
// webRtcServer.observer.on("webrtctransporthandled", (webRtcTransport) => {
|
// 监听事件
|
||||||
// console.info("webRtcServer webrtctransporthandled:", worker.pid, webRtcServer.id, webRtcTransport.id);
|
webRtcServer.on("workerclose", () => {
|
||||||
// });
|
console.debug("webRtcServer workerclose", worker.pid, webRtcServer.id);
|
||||||
// webRtcServer.observer.on("webrtctransportunhandled", (webRtcTransport) => {
|
});
|
||||||
// console.info("webRtcServer webrtctransportunhandled:", worker.pid, webRtcServer.id, webRtcTransport.id);
|
webRtcServer.observer.on("close", () => {
|
||||||
// });
|
console.debug("webRtcServer close", worker.pid, webRtcServer.id);
|
||||||
|
});
|
||||||
|
webRtcServer.observer.on("webrtctransporthandled", (webRtcTransport) => {
|
||||||
|
console.debug("webRtcServer webrtctransporthandled", worker.pid, webRtcServer.id, webRtcTransport.id);
|
||||||
|
});
|
||||||
|
webRtcServer.observer.on("webrtctransportunhandled", (webRtcTransport) => {
|
||||||
|
console.debug("webRtcServer webrtctransportunhandled", worker.pid, webRtcServer.id, webRtcTransport.id);
|
||||||
|
});
|
||||||
|
// 配置WebRTC服务
|
||||||
|
worker.appData.webRtcServer = webRtcServer;
|
||||||
|
// 添加工作线程
|
||||||
|
mediasoupWorkers.push(worker);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 连接信令服务
|
* 连接信令
|
||||||
*/
|
*/
|
||||||
async function connectSignalServer() {
|
async function connectSignalServer() {
|
||||||
signalChannel.taoyao = taoyao;
|
signalChannel.taoyao = taoyao;
|
||||||
@@ -85,10 +89,10 @@ async function main() {
|
|||||||
|
|
||||||
:: https://gitee.com/acgist/taoyao
|
:: https://gitee.com/acgist/taoyao
|
||||||
`);
|
`);
|
||||||
console.info("开始启动:", config.name);
|
console.info("开始启动", config.name);
|
||||||
await buildMediasoupWorkers();
|
await buildMediasoupWorkers();
|
||||||
await connectSignalServer();
|
await connectSignalServer();
|
||||||
console.info("启动完成:", config.name);
|
console.info("启动完成", config.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
main();
|
main();
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
const config = require("./Config.js");
|
const config = require("./Config");
|
||||||
const process = require("child_process");
|
const process = require("child_process");
|
||||||
const WebSocket = require("ws");
|
const WebSocket = require("ws");
|
||||||
const { trace } = require("console");
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 信令协议
|
* 信令协议
|
||||||
|
|||||||
@@ -56,6 +56,14 @@ const defaultKsvcEncodings = [{ scalabilityMode: "S3T3_KEY" }];
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* simulcast默认配置
|
* simulcast默认配置
|
||||||
|
* TODO:update
|
||||||
|
* https://gitee.com/acgist/mediasoup-demo/commit/090c82920d1b8015d457e4fafbb06607cb232885
|
||||||
|
* https://gitee.com/acgist/mediasoup-demo/commit/e4f70da0c69226b997d174c477d82f8dbb997e91
|
||||||
|
* https://gitee.com/acgist/mediasoup-demo/commit/2c67601d0a231bf901242c8e14cdd0d1ba39f3a4
|
||||||
|
* https://gitee.com/acgist/mediasoup-demo/commit/b9f3f28d2eab314b95392fa698d518177d5ad767
|
||||||
|
* https://gitee.com/acgist/mediasoup-demo/commit/1c59132ca926a6f9ca0c5c2bb155fac58eed9b06
|
||||||
|
* https://gitee.com/acgist/mediasoup-demo/commit/d15a859306e1ba5d031cde90d02593e095719cbc
|
||||||
|
* https://gitee.com/acgist/mediasoup-demo/commit/13cf71cc608690ff96ec12e6d3f1262b40c4d8f3
|
||||||
*/
|
*/
|
||||||
const defaultSimulcastEncodings = [
|
const defaultSimulcastEncodings = [
|
||||||
{ scaleResolutionDownBy: 4, maxBitrate: 500000, scalabilityMode: "S1T2" },
|
{ scaleResolutionDownBy: 4, maxBitrate: 500000, scalabilityMode: "S1T2" },
|
||||||
|
|||||||
@@ -1976,6 +1976,8 @@ class Taoyao extends RemoteClient {
|
|||||||
opusStereo: 1,
|
opusStereo: 1,
|
||||||
opusDtx: 1,
|
opusDtx: 1,
|
||||||
},
|
},
|
||||||
|
// TODO:opus
|
||||||
|
// https://gitee.com/acgist/mediasoup-demo/commit/1cab7cb245dc77b7f952a282290fcea8c9841d6e
|
||||||
// {
|
// {
|
||||||
// opusStereo : true,
|
// opusStereo : true,
|
||||||
// opusDtx : true,
|
// opusDtx : true,
|
||||||
|
|||||||
Reference in New Issue
Block a user