TSINGSEE青犀视频中关于WebRTC的stun/turn服务阐述

EasyGBS、EasyCVR、EasyNVR、EasyDSS等视频平台目前都提供 WebRTC 功能。在使用过程中会额外提供一个 stun/turn 服务。我们近期也接到不少用户的咨询,关于该服务的作用是什么?本文我们将和大家分享关于该服务的说明。

在 WebRTC 通信中,一般是两个用户分别在两个局域网中,不能够直接通信。两者虽然都能和公网连通,但是没有办法直接通信,因为不知道对方的公网地址。因此,这也就出现了 stun 服务。

在两个用户通信前,首先会向公网的 stun 服务发送请求,获取自己的公网地址,然后通过服务器将各自的公网地址转发给对方,这样双方就知道了对方的公网地址。根据这个公网地址就可以直接通信。

Google 提供了一个测试 stun/turn 服务的网址,在该网址上可以测试对应的 stun 服务。

https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

以上红框中就是 stun 服务返回的公网地址 36.5.146.87,通过这个可以证明网络是通畅的。

stun 在大多数情况是可用的,但是在对称 NAT 模式下则无法联通,因此必须采用转发中继的方式进行网络通信,此时就需要使用 turn 服务。在我们的视频平台中,我们也搭建了一个 turn 服务。

因为采用的是转发的模式,因此最终返回的是 turn 服务的地址和端口。从上图可以看出,动态分配的公网地址为 212.64.34.165,端口为 5122。

在网页的最后返回 701 错误,这是 Google 的网页错误,可以不用理会。

WebRTC技术为行业提供高并发、低延迟、高清流畅、安全可靠的音视频服务,适用于在线教育、云会议、社交文娱等行业和场景。我们的视频平台目前均可支持WebRTC播放,大家如若感兴趣,可前去官网进行体验和测试。

同时,我们也将不定期在文章中更新关于平台功能开发及优化、配置教程、疑难解决、行业解决方案等内容,欢迎关注我们的更新,或留言与我们互动。

原文地址:https://www.cnblogs.com/TSINGSEE/p/15793759.html