web即时通信1--WebSocket与WebRTC的三种实现方式对比

本文探讨了WebSocket和WebRTC技术在实时通信领域的应用,详细介绍了使用Node.js、Tomcat7、Spring4实现WebSocket的方式,并展示了如何在Spring4环境中结合WebRTC实现语音视频通信,最终规划了一个包含WebSocket文本聊天和WebRTC视频聊天的实时通信项目。
摘要由CSDN通过智能技术生成

        最近应项目组要求研究了下WebRTC(目前支持Firefox和Chrome),WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术。WebRTC使得开发者在浏览器无需安装任何插件就可以实现语音视频通信。

        为了将近期成果做个总结,决定写一个"Web即时通讯“的专题,因为WebSocket是WebRTC的基础,WebSocket为WebRTC负责客服端发现和数据转发,(因为WebSocket是一项“服务器推”技术,如果想更深入了解这方面的技术,可参考博文Comet:基于 HTTP 长连接的“服务器推”技术 )。基本上能实现WebSocket,就能实现WebRTC(浏览器支持方面有差异,目前IE10以上浏览器、Opera/Firefox/Chrome支持WebSocket,但各版本IE不支持WebRTC),

       所以先从WebSocket开始。目前大部分实现WebSocket有三种方式,分别是使用Node.js、tomcat7、spring4。下面将逐一介绍。

  

一、使用Node.js作为信令服务器实现WebRTC

      通过收集整理网上资料发现,大部分WebRTC信令服务器使用Node.Js(如果不清楚WebRTC相关技术术语,请自行学习初探WebRTC 这篇文章不错,有图有真相
), 下面列出三个经本人测试可用的Demo,(下载地址为WebRTC Demo)。 其中第三个demo是根据博文最简单的WebRTC示例  整理而来的。

        以第三个demo为例,安装完NodeJS后,使用node server.js启动信令服务器。就可以Chrome上分别输入http://127.0.0.1:3000和http://127.0.0.1:3000#true测试了。


            Node.js做信令服务器代码少,测试比较方便,这方面的DEMO也特别多。


二、使用Tomcat7作为WebSocket数据转发服务器


      有博友用Tomcat7做WebSocket数据转发服务器,实现了类似WebQQ的在线聊天室,详见博文基于Tomcat7、Java、WebSocket的服务器推送聊天室 后续的WebRTC视频聊天没有涉及,不过应该可以实现,本人没有去实验。

      这类实现方式和特定的服务器有关,系统部署到其他应用服务器如WebLogic,Jetty等,可能功能就会失效。所以使用该种方式实现需要考虑清楚。     


三、使用Spring4作为WebSocket数据转发服务器


     Spring4出现后,增加了对WebSocket的支持,这对java web开发者来说,是个好消息,因为可以不用针对具体的应用服务器实现WebSocket。而Spring是java web开发中应用比较广泛的了。使用该种方式实现的demo可参照博文Spring WebSocket教程(一)  Spring WebSocket教程(二)   ,它实现了一个文档编辑实时同步和简单的web聊天功能。这个例子采用了Spring MVC+Spirng4+Hibernate3框架,并使用了Maven进行jar包依赖管理和项目构建,数据库采用的是mysql,作者已经发项目发布到gitHub上,地址为https://github.com/xjyaikj/OnlinePreparation(这位博文的作者还是相当给力的)

      我在本地能正常运行项目,但是给出的数据库只有表结构,没有数据。后来我手动添加了数据,如果需要数据可以给我留言啊。


结束语

      基于Spring4的Demo没有实现WebRTC,因为我们项目中也是用SpringMVC+Spring4+Hibernate+Maven,所以后续的文章会以这个demo为基础实现一个web聊天室(包括WebSocket实现的文字聊天和WebRTC视频聊天)以及基于WebSocket消息推送实现的实时曲线图。

      先上图预告一下:

web聊天室,实现了即时通信

下面为实时曲线,会随着时间动态变化


      最后谢谢引用的超链接的原始作者,正式因为有大家分享技术,才能使后来者少走弯路。后续如果时间允许我也会将我的项目demo放到github上。

      下篇文章将会讲一下web聊天室(WebSocket实现文字聊天)。

       


   



     





评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值