【发布时间】:2021-02-20 14:15:36
【问题描述】:
我在 ubunto 16 上安装了 Coturn 服务器 目前我正在检查它
function checkTURNServer(turnConfig, timeout){
return new Promise(function(resolve, reject){
setTimeout(function(){
if(promiseResolved) return;
resolve(false);
promiseResolved = true;
}, timeout || 5000);
var promiseResolved = false
, myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection //compatibility for firefox and chrome
, pc = new myPeerConnection({iceServers:[turnConfig]})
, noop = function(){};
pc.createDataChannel(""); //create a bogus data channel
pc.createOffer(function(sdp){
if(sdp.sdp.indexOf('typ relay') > -1){ // sometimes sdp contains the ice candidates...
promiseResolved = true;
resolve(true);
}
pc.setLocalDescription(sdp, noop, noop);
}, noop); // create offer and set local description
pc.onicecandidate = function(ice){ //listen for candidate events
if(promiseResolved || !ice || !ice.candidate || !ice.candidate.candidate || !(ice.candidate.candidate.indexOf('typ relay')>-1)) return;
promiseResolved = true;
resolve(true);
};
});
}
const USERNAME="user"
const PASSWORD="password"
const PORT=3478
const IP="my_Coturn_server_ip" // you will have to change this
console.log('TURN server reachable on TCP?', await checkTURNServer( {
url: `turn:${IP}:${PORT}?transport=tcp`,
username: USERNAME,
credential: PASSWORD,
}))
console.log('TURN server reachable on UDP?', await checkTURNServer( {
url: `turn:${IP}:${PORT}?transport=udp`,
username: USERNAME,
credential: PASSWORD,
}))
每次我尝试检查时我都会在服务器中得到这个
14:会话 001000000000000001:领域用户 :传入数据包 BINDING 进程 ed,成功 14:会话 001000000000000001:领域用户 :传入数据包消息处理,错误 401:未经授权 14:IPv4。本地中继地址:my_Coturn_server_ip:57906 14:会话 001000000000000001:新,领域 =,用户名 =,生命周期 = 600 14:会话 001000000000000001:领域用户:传入数据包分配已处理,成功 24:会话 000000000000000001:领域用户:传入数据包绑定处理,成功
为什么返回 401 ? 我如何在没有身份验证的情况下向公众开放服务器?
【问题讨论】: