【发布时间】:2021-06-30 19:50:23
【问题描述】:
我有一个网络应用程序,可以播放使用 WebRTC 广播的视频。我正在使用 COTURN 简单实现(如此处所述:https://gabrieltanner.org/blog/turn-server)。我的 turnserver.conf 看起来像这样:
# TURN server name and realm
realm=<server_domain>
server-name=turnserver
# Use fingerprint in TURN message
fingerprint
# IPs the TURN server listens to
listening-ip=0.0.0.0
# External IP-Address of the TURN server
external-ip=<server_public_ip>
# Main listening port
listening-port=3478
# Further ports that are open for communication
min-port=10000
max-port=20000
# Log file path
log-file=/var/log/turnserver.log
# Enable verbose logging
verbose
# Specify the user for the TURN authentification
user=username:password
# Enable long-term credential mechanism
lt-cred-mech
# SSL certificates
cert=<crt_file>
pkey=<key_file>
# 443 for TURN over TLS, which can bypass firewalls
tls-listening-port=443
我在这里测试了这个服务器:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/,它工作正常。
在我正在做的 WebApp 上
const test = () => {
const configuration = {
iceServers: [
{ urls: "stun:stun.l.google.com:19302" },
{
urls: "turn:<domain>:3478",
username: "username",
credential: "password",
},
],
};
let pc = new RTCPeerConnection(configuration);
pc.ontrack = function (event) {...}
pc.createOffer()
.then((offer) => {
console.log(offer);
}
但报价看起来像这样:
RTCSessionDescription {type: "offer", sdp: "v=0
↵o=- 35287960452273588 2 IN IP4 127.0.0.1
↵s=-…0 0
↵a=extmap-allow-mixed
↵a=msid-semantic: WMS
↵"
这会导致其他对等方抛出SetRemoteDescription called with no fingerprint
我不知道为什么它丢失了这么多信息,我做错了什么吗?
提前谢谢你!
【问题讨论】:
标签: javascript webrtc video-streaming coturn