使用RTCConfiguration创建新的RTCPeerConnection(如以下代码)在Chrome 70和Safari 12中可以正常工作,但在Firefox 63中会中断
const configuration: RTCConfiguration = {
iceServers: [
{
urls: 'turn:user@myserver.com:3478',
username: 'user',
credential: 'mypwd'
}
]
};
let rtcPeerConn: RTCPeerConnection = new RTCPeerConnection(configuration);
我曾尝试prefix
RTCPeerConnection
,但都无法正常工作,同样的错误
// as above configuration
const PeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection || window.msRTCPeerConnection;
let RTCPeerConn = new PeerConnection(configuration);
然后我尝试添加WebRTC adapter.js,但遇到了相同的错误
最后我注意到,如果我不将配置传递给构造函数而又删除了configuration
,我不会遇到错误,但是是我后来尝试设置使用setConfiguration
方法进行配置时,我遇到未知的函数异常
有什么主意吗?
答案 0 :(得分:1)
我的问题是重复的,我的问题的答案由@ stefan-peshikj在https://stackoverflow.com/a/47127489/5404186中给出
事实证明,Chrome和Safari比Firefox宽容,后者不接受带有“ username @”的转弯网址
不接受:
const configuration: RTCConfiguration = {
iceServers: [
{
urls: 'turn:user@myserver.com:3478', // <- here remove "user@"
username: 'user',
credential: 'mypwd'
}
]
};
接受:
const configuration: RTCConfiguration = {
iceServers: [
{
urls: 'turn:myserver.com:3478',
username: 'user',
credential: 'mypwd'
}
]
};
这解决了我的问题。 Thx @ stefan-peshikj,并非所有英雄都披着斗篷。如果您想在这里改写答案以获得应有的业力积分,请不要犹豫