论文部分内容阅读
传统C/S架构的实时通信应用不支持跨平台,开发人员需要针对不同平台开发多版本的客户端,开发费用极高;对用户而言,需要刻意下载、安装和升级客户端,非常繁琐。并且C/S架构的应用一般采用私有协议,各种应用不能相互通信。随着互联网的发展,浏览器功能的日益强大,特别是HTML5的出现,缩小了Web App与Native App的差距,但是目前大多数B/S架构的实时通信应用都需要安装插件才能使用,开发人员需要根据插件进行开发,出现问题很难测试,因为大部分插件都需要授权,导致开发成本太高,有时还得考虑不同浏览器之间的差异;而用户下载、安装和升级插件非常繁琐,并且存在安全隐患。2010年,谷歌收购Global IP Solutions公司得到了一项新技术,并于2011年5月将它进行了开源,这项技术就是现在非常火爆的WebRTC技术。WebRTC支持高质量的网页实时音频对话和视频对话,它集合了多媒体通信过程中的媒体流处理、私网穿越、网络传输和会话状态机等功能,并将它们封装在浏览器当中,不像插件那样需要下载安装。本文利用WebRTC与其它技术结合设计一款通信系统,致力解决目前大多数C/S架构应用和B/S架构应用存在的缺陷。本文首先重点研究了WebRTC和P2P技术,设计将WebRTC和P2P技术结合来减小服务器压力和消息传递时延,并对P2P技术涉及的NAT和NAT穿越进行了深入研究,确立了本系统使用STUN进行NAT穿越。P2P连接的信令控制方面,分析了两种信令控制协议,最终选择JSEP来实现信令控制。P2P连接需要信令服务器进行信令控制,本文研究了几种浏览器与服务器交互技术,挑选WebSocket实现浏览器与信令服务器的交互。在结合实际、跟上潮流的理念下,本文设计了三大通信模块,并为它们的数据转发方式进行了深入研究。针对直播模块数据转发的困难,本文设计了一种基于应用层组播的动态层次模型DHALM来建立直播模块的数据流的转发网络,并对DHALM进行仿真,证明DHALM平均路径长度小、控制开销小、具有较高的数据传输率和较好的鲁棒性。基于多人会议实现的难点,本文设计了基于P2P全连接结构和基于Router结构的两种会议模式,并对两种模式的人数阈值进行了实验分析。最后进行系统实现和测试,本系统通过了各种测试,各个模块性能卓越,达到了预期的效果。