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