dhttp是什么,,,,,,,,,,,

dhttp是什么,,,,,,,,,,,,第1张

1、 WebRTC是什么?
2、 WebRTC能做什么
3、 常用API
4、 基本原理

WebRTC全称是Web Real-Time communication,是一种实时音视频通讯技术,通过WebRTC可以使浏览器之间建立点对点的连接,并实时传输数据

通过上述可以看到浏览器M和浏览器L可以在不依赖于Web服务器的情况下点对点实时传输数据。上图中的Web服务器不是用于数据传输,而是用于协助浏览器M和浏览器L进行连接,进行协助连接的服务器也叫信令服务器。

WebRTC主要分为四部分,分别是信令、建立连接、安全加密、数据传输,下面分别介绍四个步骤。

信令是指通信两端基于交换的数据进行协商。通俗的解释就是在互联网中两个浏览器之间如果要进行点对点的数据传输,连接双方需要交换对方的一些基本信息,基本信息包括对方的地址,带宽,数据的编解码格式,是否支持音视频等等信息。

通信双方的基本信息完成交换后,浏览器双方开始建立连接。在网络中,浏览器双方可能在同一个内网,可能不在同一个内网,中间可能还隔着交换机、路由器,还会存在防火墙。在网络的环境复杂的情况下,通信的双方需要找到一条最佳路径传输数据建立连接。建立连接主要使用的协议就是ICE协议。ICE协议又需要依赖STUN协议和TURN协议。

在WebRTC中,为了保证媒体传输的安全性,引入了DTLS作为传输加密协议,DTLS原理和作用类似于SSL/TLS,DTLS主要适用于UDP通信过程的加密,SSL/TLS主要适用于TCP通信过程的加密。
在WebRTC中,音视频数据传输是使用RTP协议,然后通过 DTLS 协商出加密密钥之后,RTP 也需要升级为 SRTP,通过密钥加密后进行通信。协议栈如下图所示:

上面说了对数据加密是使用DTLS,传输数据则分为两种情况,一种是传输音视频数据,另一种是传输自定义应用数据。

1、音视频数据传输,主要使用RTP/SRTP、RTCP/SRTCP协议

前面主要对WebRTC做了一个简单介绍,跳过了很多细节,有些地方可能不够严谨,如果有兴趣的读者,可以对技术做进一步研究,比如:
1、信令如何进行协商?
2、传输层用了UDP,UDP本身是不可靠的,那么,音视频数据、自定义用户数据的时序、质量是如何保证的?
3、RTP用来传递音视频数据,为什么还需要有RTCP?
4、SCTP如何从协议层面兼顾传输的效率和质量?如何实现自定义数据的高效传递?
5、ICE协议的完整流程。
6、其他。

PC站和移动端拥有两套代码,共用一个域名,根据用户使用设备跳转到合适的页面,实现代码:第一种

<SCRIPT LANGUAGE="JavaScript">
 function mobile_device_detect(url)
 {
        var thisOS=navigatorplatform;
        var os=new Array("iPhone","iPod","iPad","android","Nokia","SymbianOS","Symbian","Windows Phone","Phone","Linux armv71","MAUI","UNTRUSTED/10","Windows CE","BlackBerry","IEMobile");
 for(var i=0;i<oslength;i++)
        {
 if(thisOSmatch(os[i]))
        {  
  windowlocation=url;
 }
          
 }
 //因为相当部分的手机系统不知道信息,这里是做临时性特殊辨认
 if(navigatorplatformindexOf('iPad') != -1)
        {
  windowlocation=url;
 }
 //做这一部分是因为Android手机的内核也是Linux
 //但是navigatorplatform显示信息不尽相同情况繁多,因此从浏览器下手,即用navigatorappVersion信息做判断
  var check = navigatorappVersion;
  if( checkmatch(/linux/i) )
          {
   //X11是UC浏览器的平台 ,如果有其他特殊浏览器也可以附加上条件
   if(checkmatch(/mobile/i) || checkmatch(/X11/i))
                 {
   windowlocation=url;
   } 
 }
 //类in_array函数
 Arrayprototypein_array = function(e)
 {
  for(i=0;i<thislength;i++)
  {
   if(this[i] == e)
   return true;
  }
  return false;
 }
 }
mobile_device_detect(";

第二种:

<script type="text/javascript">
try {
var urlhash = windowlocationhash;
if (!urlhashmatch("fromapp"))
{
if ((navigatoruserAgentmatch(/(iPhone|iPod|Android|ios|iPad)/i)))
{
windowlocation=";

第三种:

<script type="text/javascript">
// JavaScript Document
function urlredirect() {
    var sUserAgent = navigatoruserAgenttoLowerCase(); 
    if ((sUserAgentmatch(/(ipod|iphone os|midp|ucweb|android|windows ce|windows mobile)/i))) {
        // PC跳转移动端
        var thisUrl = windowlocationhref;
        windowlocationhref = thisUrlsubstr(0,thisUrllastIndexOf('/')+1)+'mobile/';
         
    }
}
urlredirect();
</script>


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/12958218.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-29
下一篇2025-08-29

发表评论

登录后才能评论

评论列表(0条)

    保存