web即时通信1--WebSocket与WebRTC的三种实现⽅式对⽐最近应项⽬组要求研究了下WebRTC(⽬前⽀持Firefox和Chrome),WebRTC,名称源⾃⽹页实时通信(Web Real-Time Communication)的缩写,是⼀个⽀持⽹页浏览器进⾏实时语⾳对话或视频对话的技术,是⾕歌2010年以6820万美元
收购Global IP Solutions公司⽽获得的⼀项技术。WebRTC使得开发者在浏览器⽆需安装任何插件就可以实现语⾳视频通信。
为了将近期成果做个总结,决定写⼀个"Web即时通讯“的专题,因为WebSocket是WebRTC的基础,WebSocket为WebRTC负责客服端发现和数据转发,(因为WebSocket是⼀项“服务器推”技术,如果想更深⼊了解这⽅⾯的技术,可参考博⽂)。基本上能实现WebSocket,就能实现WebRTC(浏览器⽀持⽅⾯有差异,⽬前IE10以上浏览器、
Opera/Firefox/Chrome⽀持WebSocket,但各版本IE不⽀持WebRTC),
所以先从WebSocket开始。⽬前⼤部分实现WebSocket有三种⽅式,分别是使⽤Node.js、tomcat7、spring4。下⾯将逐⼀介绍。
⼀、使⽤Node.js作为信令服务器实现WebRTC
通过收集整理⽹上资料发现,⼤部分WebRTC信令服务器使⽤Node.Js(如果不清楚WebRTC相关技术术
语,请⾃⾏学习这篇⽂章不错,有图有真相
), 下⾯列出三个经本⼈测试可⽤的Demo,(下载地址为)。其中第三个demo是根据博⽂整理⽽来的。
webrtc浏览器Node.js做信令服务器代码少,测试⽐较⽅便,这⽅⾯的DEMO也特别多。
⼆、使⽤Tomcat7作为WebSocket数据转发服务器
有博友⽤Tomcat7做WebSocket数据转发服务器,实现了类似WebQQ的室,详见博⽂后续的W
ebRTC视频聊天没有涉及,不过应该可以实现,本⼈没有去实验。
这类实现⽅式和特定的服务器有关,系统部署到其他应⽤服务器如WebLogic,Jetty等,可能功能就会失效。所以使⽤该种⽅式实现需要考虑清楚。
三、使⽤Spring4作为WebSocket数据转发服务器
我在本地能正常运⾏项⽬,但是给出的数据库只有表结构,没有数据。后来我⼿动添加了数据,如果需要数据可以给我留⾔啊。
结束语
基于Spring4的Demo没有实现WebRTC,因为我们项⽬中也是⽤SpringMVC+Spring4+Hibernate+Maven,所以后续的⽂章会以这个demo为基础实现⼀个web聊天室(包括WebSocket实现的⽂字聊天和WebRTC视频聊天)以及基于WebSocket消息推送实现的实时曲线图。
先上图预告⼀下:
web聊天室,实现了即时通信
下⾯为实时曲线,会随着时间动态变化
最后谢谢引⽤的超链接的原始作者,正式因为有⼤家分享技术,才能使后来者少⾛弯路。后续如果时间允许我也会将我的项⽬demo放到github上。
下篇⽂章将会讲⼀下web聊天室(WebSocket实现⽂字聊天)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论