[*] 配置优化
This commit is contained in:
28
taoyao-client-media/.env
Normal file
28
taoyao-client-media/.env
Normal file
@@ -0,0 +1,28 @@
|
||||
# 服务名称
|
||||
NAME=taoyao-client-media
|
||||
# 终端ID
|
||||
CLIENT_ID=taoyao-client-media
|
||||
# 终端名称
|
||||
CLIENT_NAME=桃夭媒体服务
|
||||
# 信令版本
|
||||
SIGNAL_VERSION=1.0.0
|
||||
# 信令地址
|
||||
SIGNAL_HOST=127.0.0.1
|
||||
# 信令端口
|
||||
SIGNAL_PORT=8888
|
||||
# 信令帐号
|
||||
SIGNAL_USERNAME=taoyao
|
||||
# 信令密码
|
||||
SIGNAL_PASSWORD=taoyao
|
||||
# 工作线程数量(生产环境不要配置)
|
||||
MEDIASOUP_WORKER_SIZE=2
|
||||
# Mediasoup最小端口
|
||||
MEDIASOUP_MIN_PORT=40000
|
||||
# Mediasoup最大端口
|
||||
MEDIASOUP_MAX_PORT=49999
|
||||
# Mediasoup监听地址
|
||||
MEDIASOUP_LISTEN_IP=0.0.0.0
|
||||
# Mediasoup监听端口(起始端口)
|
||||
MEDIASOUP_LISTEN_PORT=44444
|
||||
# Mediasoup声明地址(不能配置环回地址)
|
||||
MEDIASOUP_ANNOUNCED_IP=192.168.1.110
|
||||
14
taoyao-client-media/.env.node-a
Normal file
14
taoyao-client-media/.env.node-a
Normal file
@@ -0,0 +1,14 @@
|
||||
NAME=taoyao-client-media-a
|
||||
CLIENT_ID=taoyao-client-media-a
|
||||
CLIENT_NAME=桃夭媒体服务A
|
||||
SIGNAL_VERSION=1.0.0
|
||||
SIGNAL_HOST=127.0.0.1
|
||||
SIGNAL_PORT=8888
|
||||
SIGNAL_USERNAME=taoyao
|
||||
SIGNAL_PASSWORD=taoyao
|
||||
MEDIASOUP_WORKER_SIZE=2
|
||||
MEDIASOUP_MIN_PORT=40000
|
||||
MEDIASOUP_MAX_PORT=49999
|
||||
MEDIASOUP_LISTEN_IP=0.0.0.0
|
||||
MEDIASOUP_LISTEN_PORT=41111
|
||||
MEDIASOUP_ANNOUNCED_IP=192.168.1.110
|
||||
14
taoyao-client-media/.env.node-b
Normal file
14
taoyao-client-media/.env.node-b
Normal file
@@ -0,0 +1,14 @@
|
||||
NAME=taoyao-client-media-b
|
||||
CLIENT_ID=taoyao-client-media-b
|
||||
CLIENT_NAME=桃夭媒体服务B
|
||||
SIGNAL_VERSION=1.0.0
|
||||
SIGNAL_HOST=127.0.0.1
|
||||
SIGNAL_PORT=8888
|
||||
SIGNAL_USERNAME=taoyao
|
||||
SIGNAL_PASSWORD=taoyao
|
||||
MEDIASOUP_WORKER_SIZE=2
|
||||
MEDIASOUP_MIN_PORT=40000
|
||||
MEDIASOUP_MAX_PORT=49999
|
||||
MEDIASOUP_LISTEN_IP=0.0.0.0
|
||||
MEDIASOUP_LISTEN_PORT=42222
|
||||
MEDIASOUP_ANNOUNCED_IP=192.168.1.110
|
||||
13
taoyao-client-media/.env.prd
Normal file
13
taoyao-client-media/.env.prd
Normal file
@@ -0,0 +1,13 @@
|
||||
NAME=taoyao-client-media
|
||||
CLIENT_ID=taoyao-client-media
|
||||
CLIENT_NAME=桃夭媒体服务
|
||||
SIGNAL_VERSION=1.0.0
|
||||
SIGNAL_HOST=127.0.0.1
|
||||
SIGNAL_PORT=8888
|
||||
SIGNAL_USERNAME=taoyao
|
||||
SIGNAL_PASSWORD=taoyao
|
||||
MEDIASOUP_MIN_PORT=40000
|
||||
MEDIASOUP_MAX_PORT=49999
|
||||
MEDIASOUP_LISTEN_IP=0.0.0.0
|
||||
MEDIASOUP_LISTEN_PORT=44444
|
||||
MEDIASOUP_ANNOUNCED_IP=192.168.1.110
|
||||
@@ -7,11 +7,15 @@
|
||||
"homepage" : "https://gitee.com/acgist/taoyao",
|
||||
"description": "taoyao client media",
|
||||
"scripts": {
|
||||
"dev": "node src/Server.js",
|
||||
"prd": "node src/Server.js"
|
||||
"dev" : "node src/Server.js",
|
||||
"prd" : "cross-env NODE_ENV=prd node src/Server.js",
|
||||
"node-a": "cross-env NODE_ENV=node-a node src/Server.js",
|
||||
"node-b": "cross-env NODE_ENV=node-b node src/Server.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"ws" : "^8.12.0",
|
||||
"dotenv" : "^16.3.1",
|
||||
"cross-env": "^7.0.3",
|
||||
"mediasoup": "^3.11.10"
|
||||
}
|
||||
}
|
||||
@@ -1,38 +1,38 @@
|
||||
const os = require("os");
|
||||
const dotenv = require("dotenv");
|
||||
|
||||
/**
|
||||
* 桃夭媒体服务地址
|
||||
* 注意:这里即使是本机也不能配置127.0.0.1
|
||||
*/
|
||||
const defaultTaoyaoHost = "192.168.1.110";
|
||||
if(process.env.NODE_ENV) {
|
||||
dotenv.config({ path: `.env.${process.env.NODE_ENV}` });
|
||||
} else {
|
||||
dotenv.config({ path: `.env` });
|
||||
}
|
||||
|
||||
/**
|
||||
* 配置
|
||||
*/
|
||||
module.exports = {
|
||||
// 服务名称
|
||||
name: "taoyao-client-media",
|
||||
name: process.env.NAME || "taoyao-client-media",
|
||||
// 信令配置
|
||||
signal: {
|
||||
// 信令版本
|
||||
version : "1.0.0",
|
||||
// 终端标识
|
||||
clientId : "taoyao-client-media",
|
||||
version : process.env.SIGNAL_VERSION || "1.0.0",
|
||||
// 终端ID
|
||||
clientId : process.env.CLIENT_ID || "taoyao-client-media",
|
||||
// 终端类型
|
||||
clientType: "MEDIA",
|
||||
// 终端名称
|
||||
name : "桃夭媒体服务",
|
||||
name : process.env.CLIENT_NAME || "桃夭媒体服务",
|
||||
// 信令地址
|
||||
host : "127.0.0.1",
|
||||
// host : "192.168.1.100",
|
||||
host : process.env.SIGNAL_HOST || "127.0.0.1",
|
||||
// 信令端口
|
||||
port : 8888,
|
||||
port : process.env.SIGNAL_PORT || 8888,
|
||||
// 信令协议
|
||||
scheme : "wss",
|
||||
// 信令帐号
|
||||
username : "taoyao",
|
||||
username : process.env.SIGNAL_USERNAME || "taoyao",
|
||||
// 信令密码
|
||||
password : "taoyao",
|
||||
password : process.env.SIGNAL_PASSWORD || "taoyao",
|
||||
},
|
||||
// 录像配置
|
||||
record: {
|
||||
@@ -44,7 +44,7 @@ module.exports = {
|
||||
// Mediasoup
|
||||
mediasoup: {
|
||||
// Worker数量
|
||||
workerSize: Object.keys(os.cpus()).length,
|
||||
workerSize: process.env.MEDIASOUP_WORKER_SIZE || Object.keys(os.cpus()).length,
|
||||
// Worker配置:https://mediasoup.org/documentation/v3/mediasoup/api/#WorkerSettings
|
||||
workerSettings: {
|
||||
// 日志标记
|
||||
@@ -64,7 +64,7 @@ module.exports = {
|
||||
"simulcast",
|
||||
],
|
||||
// 日志级别:debug | warn | error | none
|
||||
logLevel: "warn",
|
||||
logLevel : "warn",
|
||||
// RTP端口范围
|
||||
rtcMinPort: process.env.MEDIASOUP_MIN_PORT || 40000,
|
||||
rtcMaxPort: process.env.MEDIASOUP_MAX_PORT || 49999,
|
||||
@@ -133,15 +133,15 @@ module.exports = {
|
||||
listenInfos: [
|
||||
{
|
||||
protocol : "udp",
|
||||
ip : process.env.MEDIASOUP_LISTEN_IP || "0.0.0.0",
|
||||
port : 44444,
|
||||
announcedIp: process.env.MEDIASOUP_ANNOUNCED_IP || defaultTaoyaoHost || "127.0.0.1",
|
||||
ip : process.env.MEDIASOUP_LISTEN_IP || "0.0.0.0",
|
||||
port : process.env.MEDIASOUP_LISTEN_PORT || 44444,
|
||||
announcedIp: process.env.MEDIASOUP_ANNOUNCED_IP || "127.0.0.1",
|
||||
},
|
||||
{
|
||||
protocol : "tcp",
|
||||
ip : process.env.MEDIASOUP_LISTEN_IP || "0.0.0.0",
|
||||
port : 44444,
|
||||
announcedIp: process.env.MEDIASOUP_ANNOUNCED_IP || defaultTaoyaoHost || "127.0.0.1",
|
||||
ip : process.env.MEDIASOUP_LISTEN_IP || "0.0.0.0",
|
||||
port : process.env.MEDIASOUP_LISTEN_PORT || 44444,
|
||||
announcedIp: process.env.MEDIASOUP_ANNOUNCED_IP || "127.0.0.1",
|
||||
},
|
||||
],
|
||||
},
|
||||
@@ -150,7 +150,7 @@ module.exports = {
|
||||
listenIps: [
|
||||
{
|
||||
ip : process.env.MEDIASOUP_LISTEN_IP || "0.0.0.0",
|
||||
announcedIp: process.env.MEDIASOUP_ANNOUNCED_IP || defaultTaoyaoHost || "127.0.0.1",
|
||||
announcedIp: process.env.MEDIASOUP_ANNOUNCED_IP || "127.0.0.1",
|
||||
},
|
||||
],
|
||||
initialAvailableOutgoingBitrate: 1000000,
|
||||
@@ -162,16 +162,9 @@ module.exports = {
|
||||
plainTransportOptions: {
|
||||
listenIp: {
|
||||
ip : process.env.MEDIASOUP_LISTEN_IP || "0.0.0.0",
|
||||
announcedIp: process.env.MEDIASOUP_ANNOUNCED_IP || defaultTaoyaoHost || "127.0.0.1",
|
||||
announcedIp: process.env.MEDIASOUP_ANNOUNCED_IP || "127.0.0.1",
|
||||
},
|
||||
maxSctpMessageSize: 262144,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* PipeTransport : RTP(router)
|
||||
* PlainTransport : RTP
|
||||
* DirectTransport: NodeJS
|
||||
* WebRtcTransport: WebRTC
|
||||
*/
|
||||
|
||||
@@ -17,7 +17,7 @@ const taoyao = new Taoyao(mediasoupWorkers);
|
||||
*/
|
||||
async function buildMediasoupWorkers() {
|
||||
mediasoup.observer.on("newworker", (worker) => {
|
||||
console.info("mediasoup newworker", worker);
|
||||
console.info("mediasoup newworker", worker.pid);
|
||||
});
|
||||
const { workerSize } = config.mediasoup;
|
||||
console.info("工作线程数量", workerSize);
|
||||
@@ -46,7 +46,7 @@ async function buildMediasoupWorkers() {
|
||||
// 创建WebRTC服务
|
||||
const webRtcServerOptions = JSON.parse(JSON.stringify(config.mediasoup.webRtcServerOptions));
|
||||
for (const listenInfos of webRtcServerOptions.listenInfos) {
|
||||
listenInfos.port = listenInfos.port + mediasoupWorkers.length;
|
||||
listenInfos.port = Number(listenInfos.port) + mediasoupWorkers.length;
|
||||
}
|
||||
const webRtcServer = await worker.createWebRtcServer(webRtcServerOptions);
|
||||
// 监听事件
|
||||
|
||||
Reference in New Issue
Block a user