1.WebSocket的优缺点
大并发时传输量的减少,网络负载对比
图片来自:http://www.ibm.com/developerworks/cn/web/1112_huangxa_websocket/
时延减半:
图片来自:http://kb.cnblogs.com/page/58908/
缺点是现在规范的支持还不是很完善,浏览器的支持也非常的有限,并且需要服务器进行支持,不过这些都是可以慢慢的改进,找到确实的应用场景,还是可以用上去的
2.Web Socket客户端API:
onopen 请求握手成功后,回调方法(应用场景:用户登录后的提示)
onmessage 服务器端主动向服务器推送消息回调方法(由服务器向客户端推送消息)
onerror 连接过程出现异常时的回调
onclose 连接中断回调
当然,如果深入去理解的话,我们可以去看看html5 websocket的草案,看看请求头需要带的参数是什么,以遍以后出问题的时候可以查看。在IBM文档框上有一个文章写得挺好:《web socket 构建实时应用 》
3.Web Socket服务端API
web socket 的upgrade如下:
GET /demo HTTP/1.1
Host: example.com
Connection: Upgrade
Sec-WebSocket-Key2: 12998 5 Y3 1 .P00
Upgrade: WebSocket
Sec-WebSocket-Key1: 4@1 46546xW%0l 1 5
Origin: http://example.com
[8-byte security key]
那么服务器端用C++或者是Python或者是Java都可以做这些事情
4.tomcat服务器的支持
在ITEYE上即可看到tomcat7.0.27版本已经添加了对websocket的支持:Apache Tomcat 7.0.27发布,支持websocket
tomcat7.0.27的文档已经说明了web socket尚处于草案阶段:tomcat7.0.27websocket文档
后续API还可能改变,不过现在如果是基于手机端的还是可以用得上吧,下了tomcat7.0.27,里面还有demo和demo的源码可以运行,非常不错的说,示例的源码在上述这个链接中,在控制台上输入http://localhost:8080,点击examples