首页 > 解决方案 > 当设备在不同的网络上时如何使 webrtc 视频通话正常工作

问题描述

希望这能满足你

我正在尝试将视频通话功能添加到我的应用程序中,当设备连接到同一个 wifi 时会显示两个媒体流,但在不同网络上时不会显示。

我正在使用这样的 google stun 服务器

const config = new TNSRTCConfiguration({
iceServers: [
    new TNSRTCIceServer(['stun:stun.l.google.com:19302']),
    new TNSRTCIceServer(['stun:stun1.l.google.com:19302']),
]
})
this.connection = new TNSRTCPeerConnection(config);

现在我使用 twilio stun-turn 我生成的 iceServer 是这样的

{"accountSid":"A*c4c7***00d1d9a74df****045785af**",
"dateCreated":"2020-11-15T21:22:11.000Z",
"dateUpdated":"2020-11-15T21:22:11.000Z",

"iceServers":[{"url":"stun:global.stun.twilio.com:3478?transport=udp",
"urls":"stun:global.stun.twilio.com:3478?transport=udp"},{"url":"turn:global.turn.twilio.com:3478?transport=udp",
"username":"4fb786c964c33a3022239ae1af6ae5fa64525d5ce2355da261f23ac2fbaeef31",
"urls":"turn:global.turn.twilio.com:3478?transport=udp",
"credential":"qPHa627LqJbEVoC6rG2BWq2TggpuH2q78+JkVOycSps="},
{"url":"turn:global.turn.twilio.com:3478?transport=tcp",
"username":"4fb786c964c33a3022239ae1af6ae5fa64525d5ce2355da261f23ac2fbaeef31",
"urls":"turn:global.turn.twilio.com:3478?transport=tcp",
"credential":"qPHa627LqJbEVoC6rG2BWq2TggpuH2q78+JkVOycSps="},{"url":"turn:global.turn.twilio.com:443?transport=tcp",
"username":"4fb786c964c33a3022239ae1af6ae5fa64525d5ce2355da261f23ac2fbaeef31",
"urls":"turn:global.turn.twilio.com:443?transport=tcp",
"credential":"qPHa627LqJbEVoC6rG2BWq2TggpuH2q78+JkVOycSps="}],

"password":"qPHa6****JbEVoC6rG***q2T***uH2q78+Jk**ycSps=",
"ttl":"86400",
"username":"4fb786c964c33a3022239ae1af6ae5fa64525d5ce2355da261f23ac2fbaeef31"}   

这就是我在我的应用程序中使用它的方式

this.socket.on("twilio iceservers", token => {
        const config = new TNSRTCConfiguration({
            iceServers: token.iceServers
        })
        this.connection = new TNSRTCPeerConnection(config);
.
.
.
});

请问这可能是什么原因?

标签: twiliowebrtcstunturnpeer

解决方案


推荐阅读