HTML5规范中出现了websocket用于异步通信(例如用在局部刷新),介绍可参考维基百科:
http://zh.wikipedia.org/zh-cn/WebSocket,接口很简单,浏览器
方面firefox,chrome,opera已支持,IE9不支持,但IE10已经支持。服务器方面,我学习的是python下
的web框架,所以使用了AutobahnPython(当然还有其他的库可用,但是这个库的API比较简洁),
使用起来很简单。实例代码参考http://autobahn.ws/python/getstarted
因为websocket是基于TCP的,如果要Nginx实现负载均衡,暂时要使用第三方支持。这里记
录一个博客,为websocket应用实现负载均衡:http://cnodejs.org/topic/4f16442ccae1f4aa270010b3,
这篇博客中提到一个Nginx支持TCP支持插件:tcp_proxy_pass,
源码在github:https://github.com/yaoweibin/nginx_tcp_proxy_module
因为有的浏览器暂不支持websocket,还有一个方案是使用socket.io,或者说是node.js,这个方案
将js跑在了后端,最近两年发展迅猛,兼容各钟浏览器和移动设备,提供统一接口,
支持websocker,ajax等异步通信模型,统一API,官方网址是http://socket.io/#how-to-use。这个方案,
浏览器端使用socket.io.js。服务器端要安装socket.io 包才可以,用Node.js启动服务器。这方面的文章有
许多。这里记录两个
1,socket.io使用:http://www.cnblogs.com/navy235/archive/2012/05/08/2490124.html
2,我为什么向后端工程师推荐Node.js:http://www.infoq.com/cn/articles/why-recommend-nodejs
3,电子书:http://www.nodebeginner.org/index-zh-cn.html
4,深入浅出Node.js(一):什么是Node.js:http://www.infoq.com/cn/articles/what-is-nodejs
但是Node.js是独立的一套,服务器和客户端都得用。