论文部分内容阅读
随着社会的进步,计算机网络已成为人们生活中必不可少的一部分。与移动通信相比,网络通信具有实现简单、受运营商的局限性小、信息交互的种类多、价格低廉等优势,而即时通信(Instant Messenger, IM)已成为互联网上的第一大应用。网络即时通信的常有模式有客户端/服务器(Client/Server, C/S)架构和浏览器/服务器(Browser/Server, B/S)架构两种模式。与传统的基于C/S架构实现的即时通信相比,B/S架构的即时通信,对设备要求低,用户基数大,便于推广应用。应用类型也越来越广泛,可以实现文本、音视频等多种制式的通信。本文的基于Web的实时通信系统主要实现了基于Web的即时消息和音视频通信。与客户端实现的通信不同,Web通信需要用户向服务器发出页面更新请求,在页面不刷新的情况下实现信息交互,本文对页面刷新技术进行了深入研究,选用长轮询BOSH进行即时消息部分的页面刷新。本文的即时消息采用XMPP协议实现,XMPP是一种开源的即时通信协议,每个XMPP实体具有唯一的用户ID,通过代理BOSH实现了基于XMPP协议的Web即时消息功能。最后,对即时消息的登陆、联系人列表、状态、聊天等功能进行性能测试,性能良好。与文本即时通信相比,Web音视频通信的特殊性要求媒体设备启动、连接建立、视频播放、媒体信息处理和传输等大量难题,交由浏览器处理。最新的RTCWeb技术有效解决了这些问题,此技术将多媒体信息处理与连接控制的大部分工作,在浏览器内部实现。现在的chrome23已经开始支持这一功能,开发者只要在两个用户间建立连接,即可实现Web音视频通话。RTCWeb的功能主要分为信令面和媒体面,信令面负责控制媒体传输的信令协议,包括ROAP(RTCWeb Offer/Answer Protocol)和JSEP(Javascript Session Establishment Protocol),引入了状态机机制,有效解决了通话过程中媒体状态实时更新的问题。媒体面负责媒体获取、媒体信号处理等。本文对RTCWeb特别是ROAP和JSEP协议进行了深入研究,通过调用getusermedia API启动摄像头和麦克风,使用JSEP协议控制媒体状态,XMPP协议建立连接和传输数据,使用WebSocket协议实现XMPP与HTTP之间的连接,实现了一个Web视频通话系统。并对Web视频通话系统进行了性能测试,通话连接稳定,视频图像清晰流畅,语音信号清晰可辨,性能良好。