turn服务器搭建设置改为可选

This commit is contained in:
david_bai
2025-06-17 20:36:59 +08:00
parent 31ebd1c304
commit 055da7888a
3 changed files with 39 additions and 18 deletions
+29 -15
View File
@@ -1,29 +1,43 @@
export const config = {
API_URL: process.env.NEXT_PUBLIC_API_URL!,
SERVER_IP: process.env.NEXT_PUBLIC_SERVER_IP!,
USE_HTTPS: process.env.NEXT_PUBLIC_USE_HTTPS === "true",
USE_CREDENTIALS: process.env.NEXT_PUBLIC_USE_CREDENTIALS === "true",
TURN_USERNAME: "secureUser",
TURN_CREDENTIAL: "QWERTY!@#456",
// Optional: Self-hosted TURN server settings
// To enable, set NEXT_PUBLIC_TURN_HOST, NEXT_PUBLIC_TURN_USERNAME, and NEXT_PUBLIC_TURN_PASSWORD in your .env file
TURN_HOST: process.env.NEXT_PUBLIC_TURN_HOST,
TURN_USERNAME: process.env.NEXT_PUBLIC_TURN_USERNAME,
TURN_CREDENTIAL: process.env.NEXT_PUBLIC_TURN_PASSWORD,
};
export const getIceServers = () => {
const stunUrl = [
`stun:${config.SERVER_IP}:3478`,
"stun:stun.l.google.com:19302",
];
const turnUrls = config.USE_HTTPS
? [`turn:${config.SERVER_IP}:3478`, `turns:${config.SERVER_IP}:5349`]
: [`turn:${config.SERVER_IP}:3478`];
return [
{ urls: stunUrl },
// Default public STUN server
const iceServers: RTCIceServer[] = [
{
urls: "stun:stun.l.google.com:19302",
},
];
// Add self-hosted TURN/STUN server if configured through environment variables
if (config.TURN_HOST && config.TURN_USERNAME && config.TURN_CREDENTIAL) {
const turnUrls = config.USE_HTTPS
? [`turns:${config.TURN_HOST}:5349`, `turn:${config.TURN_HOST}:3478`]
: [`turn:${config.TURN_HOST}:3478`];
// Add STUN from the self-hosted server
iceServers.push({
urls: `stun:${config.TURN_HOST}:3478`,
});
// Add TURN from the self-hosted server
iceServers.push({
urls: turnUrls,
username: config.TURN_USERNAME,
credential: config.TURN_CREDENTIAL,
},
];
});
}
return iceServers;
};
export const getSocketOptions = () => {