最近工作中需要对WebRTC做一些调研,于是我计划基于WebSocke和WebRTC实现IM和视音频对话的prototype。
在html5 WebSocket出现以前,web版本的IM应用都是基于AJAX轮询的信令传输方式,这种方式的优点是调用rest接口可以实现无状态维护信令传输,server端都有成熟的jsp、php等技术框架支持;缺点不言而喻,就是网络使用浪费server负载过大等等。WebSocket的出现给web端的信令传输提供了新的道路。
WebSocket作为HTML5一种新的协议,实现了浏览器与服务器的双向通讯。在 WebSocket API 中,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。
我自然选择了WebSocket作为IM和WebRTC信令传输的媒介,这样就需要搭建一个支持WebSocket协议的server端。
经过一番google后发现有很多解决方案,纯C实现的opensource工程libwebsocket,Node.js实现,新版本的web服务器jetty和netty等也都对websocket提供了支持。鉴于java语言的易操作性我最终选择了jetty + java的实现。
参照这个帖子(http://www.cnblogs.com/svage/archive/2011/11/24/2262008.html)搭起了WebSocket server。需要提醒大家的是jetty版本的选择上使用11年10月左右的版本,新版本运行会出初始化错误。
先到这里吧,明天继续写~
相关资料:
http://www.cnblogs.com/svage/archive/2011/11/24/2262008.html
http://git.warmcat.com/cgi-bin/cgit/libwebsockets/
http://dev.w3.org/html5/websockets/
本文来自longrenle的博客,原文地址:http://www.cnblogs.com/longrenle/archive/2012/02/24/2365941.html