zoukankan      html  css  js  c++  java
  • 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播放,大家如若感兴趣,可前去官网进行体验和测试。

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

  • 相关阅读:
    【mysql】添加对emoji的支持
    【mysql】关于innodb中MVCC的一些理解
    【mysql】关于硬件方面的一些优化
    关于php中的spl_autoload_register
    【mysql】高可用集群之MMM
    【mysql】数据库使用的一些规范
    使用sysbench进行压力测试
    【mysql】关于乐观锁
    【linux】spinlock 的实现
    【mysql】关于悲观锁
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/15793759.html
Copyright © 2011-2022 走看看