一种WebRTC客户端连接动态自适应选择的方法技术

技术编号:15555517 阅读:97 留言:0更新日期:2017-06-09 10:50
本发明专利技术提供了一种WebRTC客户端连接动态自适应选择的方法,属于WebRTC、HTML5WebSocket等技术领域。本方法涉及的实体包括WebRTC客户端、浏览器和实时通信服务器;所述WebRTC客户端能够支持HTTP轮询、HTTP长连接和WebSocket三种连接方式,所述HTTP长连接包括HTTP流;所述方法根据网络环境动态,优先选择HTTP轮询、HTTP长连接和WebSocket这三种连接方式中延迟最低的连接方式,使用该延迟最低的连接方式将WebRTC客户端与实时通信服务器建立连接。本发明专利技术在保证实时性的前提下,减小了通信延迟,增强了客户端的功能,提高了客户端的智能性。

Method for dynamically adapting selection of WebRTC client connection

The invention provides a method for dynamic self-adaptive selection of WebRTC client connections, belonging to the technical field of WebRTC, HTML5WebSocket and the like. This method involves the entity, including WebRTC client browser and real-time communication server; the WebRTC client can support HTTP, HTTP and WebSocket long polling connection three connection, the HTTP connection includes HTTP flow; the method based on the dynamic network environment, and to choose the connection mode of the lowest delay HTTP polling, HTTP long WebSocket connection and the three connection modes, using the lowest delay connection WebRTC client connection and real-time communication server. The invention reduces the communication delay, enhances the function of the client and improves the intelligence of the client under the premise of guaranteeing the real-time property.

【技术实现步骤摘要】
一种WebRTC客户端连接动态自适应选择的方法
本专利技术属于WebRTC、HTML5WebSocket等
,具体涉及一种WebRTC客户端连接动态自适应选择的方法。
技术介绍
随着Web技术的发展和浏览器的普及,基于浏览器的Web应用以及使用Web技术开发的移动终端原生应用越来越多。因为浏览器及其所代表的Web开发技术具备良好的跨平台性和可移植性,不仅可以做到不同操作系统之间的跨平台,而且在一定程度上还可以不做任何修改的移植到移动终端设备上。WebRTC的全称是WebbasedReal-TimeCommunicationS,即基于Web的实时通信。WebRTC在IETF和W3C两大互联网标准化组织都有相应的工作组,目的是实现无插件浏览器之间的多媒体实时通信,即浏览器原生支持多媒体通信,而不需要借助于AdobeFlash或其他插件。目前市场上有很多基于Web浏览器的实时通信应用,但全部是以即时通信为主,要实现多媒体通信还需要借助于浏览器插件。在Web应用中实现实时通信的难点就在于HTTP协议(请参考:RFC2616,HypertextTransferProtocol--HTTP/1.1,IETFNetworkWorkingGroup,http://datatracker.ietf.org/doc/rfc2616/)不支持服务器主动Push信息至运行于浏览器中的Web应用,除非Web应用主动发送请求至服务器,否则服务器无法主动将信息发送至Web应用。这就导致在基于Web的实时通信领域中,好友发送来的信息或系统产生的通知无法在第一时间发送至用户,也就是说基于Web的实时通信应用无法保证最基本的“实时性”。针对上述问题,目前主流的Web实时通信应用中主要采用HTTP轮询、HTTP长连接和HTTP流来模拟服务器Push(请参考:周婷,IBMDeveloperWorks文章,Comet:基于HTTP长连接的“服务器推”技术,http://WWW.ibm.com/developerworks/cn/web/wa-lo-comet/)技术。如图1所示,HTTP轮询(Polling):即Web应用每隔一段时间就向服务器发起一个HTTP请求,请求获得更新的消息和通知,服务器将需要传回至Web应用的消息放到HTTP响应的消息体中,发送至WebRTC客户端。使用HTTP轮询机制,浏览器会定期(一般用Interval表示)发送HTTP请求,并随即接收响应,HTTP轮询是浏览器在实时信息传送方面的首次尝试。显然,如果知道消息传递的准确时间间隔,轮询将是一个很好的方法,因为可以将客户端的请求同步为只有服务器上的信息可用时才发出。但是,实时数据的到来往往不可预测,不可避免会产生一些不必要的请求,在低消息率的情况下会有很多无用的连接不断地打开和关闭,且固定的时间间隔无疑会在一定程度上加大消息的平均延迟。如图2所示,HTTP长连接(LongPolling):浏览器向服务器发送一个请求,服务器会在一段时间内将其保持在打开状态。如果服务器在此期间收到一个通知,就会向客户端发送一个包含消息的响应。如果时间已到却还没有收到通知,服务器会发送一个响应消息来终止打开的请求。在HTTP长连接中,浏览器会发送一个完整的HTTP请求给服务器,请求中设置了超时时间(Timeout),服务器接收到该请求后并不直接返回响应,而是保持一个处于打开状态的响应,该响应持续更新并无限期或是在一段时间内处于打开状态。每当有消息可发送时,该响应就会被更新,但服务器永远不会发出响应完成的信号,这样连接就会一直保持在打开状态以便后续消息的发送。除此之外,还有一种基于HTTP协议实现的服务器Push技术,称为HTTP流(Streaming),即服务器收到HTTP请求后,利用HTTP响应传输数据,但数据传输完成后并不关闭HTTP连接,HTTP连接只会在通信出现错误或连接超时时关闭,这时Web应用再重新发起一个HTTP请求即可。HTTP流和HTTP长连接的原理比较接近,只是当即时消息等信息量很大时,与传统HTTP轮询方式相比,长连接方式并无实质上的性能改善,而HTTP流在一定程度上减少了HTTP的数量,但也增加了开发的复杂度。HTTP长连接(包括HTTP流)技术是目前应用最广的基于Web浏览器的实时通信应用通信机制解决方案,很多成熟的应用和产品使用的都是HTTP长连接技术。虽然现有的技术方案已经可以模拟或实现服务器Push信息或通知至Web应用(请参考:丁岩,杨淑艳,刘长青等,专利《JAVA实现WEB服务器主动发起向浏览器发送数据的方法》,申请专利号:CN200410041590.9,申请公布号:CN1735015),但随着互联网的快速发展和终端接入方式的多样化,一种单一的解决方案已无法满足多变的网络环境,且随着HTML5等Web新技术的发展,WebSocket(请参考:RFC6455,TheWebSocketProtocol,IETF,http://datatracker.ietf.org/doc/rfc6455/)作为一个新的协议使得Web服务器与浏览器之间具备了双向通信的功能。WebRTC应用与服务器之间的连接方式需要更加智能,以适应多变的网络环境和不同的Web接入方式。
技术实现思路
本专利技术的目的在于解决上述现有技术中存在的难题,提供一种WebRTC客户端连接动态自适应选择的方法,为基于Web浏览器的实时通信(WebRTC)应用提供一种动态自适应的方法,综合运用各服务器Push机制和HTML5WebSocket协议,使得WebRTC应用可以动态自适应的根据网络环境和接入环境选择合适的连接方式与服务器建立连接,在保证实时性的前提下,减少延迟,提高带宽利用率。本专利技术是通过以下技术方案实现的:一种WebRTC客户端连接动态自适应选择的方法,涉及的实体包括WebRTC客户端、浏览器和实时通信服务器;所述WebRTC客户端能够支持HTTP轮询、HTTP长连接和WebSocket三种连接方式,所述HTTP长连接包括HTTP流;所述方法根据网络环境动态,优先选择HTTP轮询、HTTP长连接和WebSocket这三种连接方式中延迟最低的连接方式,使用该延迟最低的连接方式将WebRTC客户端与实时通信服务器建立连接。所述方法包括:(1)用户在浏览器地址栏中输入WebRTC客户端的网址,浏览器下载并加载WebRTC客户端;(2)WebRTC客户端检查浏览器是否支持WebSocket,如果是,则使用WebSocket建立连接,转入步骤(3);如果否,则转入步骤(4);(3)判断WebSocket连接是否异常断开,如果否,则实时通信服务器能够通过WebSocket连接将信息发送给WebRTC客户端,转入步骤(10);如果是,则放弃使用WebSocket连接,转入步骤(4);(4)使用HTTP长连接建立连接;(5)动态调整HTTP长连接参数;(6)判断HTTP长连接是否异常断开,如果是,则转入步骤(7),如果否,则实时通信服务器能够通过HTTP长连接将信息发送给WebRTC客户端,转入步骤(10);(7)判断HTTP长连接异常断开次数是否超过上限,如果是,则转入步骤(8);如果否,则返本文档来自技高网
...
一种WebRTC客户端连接动态自适应选择的方法

【技术保护点】
一种WebRTC客户端连接动态自适应选择的方法,所述方法涉及的实体包括WebRTC客户端、浏览器和实时通信服务器;所述WebRTC客户端能够支持HTTP轮询、HTTP长连接和WebSocket三种连接方式,所述HTTP长连接包括HTTP流其特征在于:所述方法根据网络环境动态,优先选择HTTP轮询、HTTP长连接和WebSocket这三种连接方式中延迟最低的连接方式,使用该延迟最低的连接方式将WebRTC客户端与实时通信服务器建立连接,所述方法包括:(1)用户在浏览器地址栏中输入WebRTC客户端的网址,浏览器下载并加载WebRTC客户端;(2)WebRTC客户端检查浏览器是否支持WebSocket,如果是,则使用WebSocket建立连接,转入步骤(3);如果否,则转入步骤(4);(3)判断WebSocket连接是否异常断开,如果否,则实时通信服务器能够通过WebSocket连接将信息发送给WebRTC客户端,转入步骤(10);如果是,则放弃使用WebSocket连接,转入步骤(4);(4)使用HTTP长连接建立连接;(5)动态调整HTTP长连接参数;(6)判断HTTP长连接是否异常断开,如果是,则转入步骤(7),如果否,则实时通信服务器能够通过HTTP长连接将信息发送给WebRTC客户端,转入步骤(10);(7)判断HTTP长连接异常断开次数是否超过上限,如果是,则转入步骤(8);如果否,则返回步骤(5);(8)使用HTTPS轮询建立连接,并动态调整HTTP轮询时间间隔;(9)判断HTTP轮询是否持续稳定,如果是,则返回步骤(4),如果否,则转入步骤(10);(10)数据传输。...

【技术特征摘要】
1.一种WebRTC客户端连接动态自适应选择的方法,所述方法涉及的实体包括WebRTC客户端、浏览器和实时通信服务器;所述WebRTC客户端能够支持HTTP轮询、HTTP长连接和WebSocket三种连接方式,所述HTTP长连接包括HTTP流其特征在于:所述方法根据网络环境动态,优先选择HTTP轮询、HTTP长连接和WebSocket这三种连接方式中延迟最低的连接方式,使用该延迟最低的连接方式将WebRTC客户端与实时通信服务器建立连接,所述方法包括:(1)用户在浏览器地址栏中输入WebRTC客户端的网址,浏览器下载并加载WebRTC客户端;(2)WebRTC客户端检查浏览器是否支持WebSocket,如果是,则使用WebSocket建立连接,转入步骤(3);如果否,则转入步骤(4);(3)判断WebSocket连接是否异常断开,如果否,则实时通信服务器能够通过WebSocket...

【专利技术属性】
技术研发人员:双锴苏森冯恺徐鹏王玉龙
申请(专利权)人:北京邮电大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1