Ruby & WebSockets: 浏览器的TCP
七 11
原文:http://www.igvita.com/2009/12/22/ruby-websockets-tcp-for-the-browser/
WebSockets是HTML5中最被低估的革新之一。不像本地储存(local storage),画布(canvas),并行操作(web workers)和视频播放(video playback),WebSocket API的好处不会立即呈现给最终用户。事实上,过去十年我们已经发明了很多技术去解决浏览器和服务器间异步和双工通讯的问题:AJAX,Comet & HTTP Streaming,BOSH,ReverseHTTP,WebHooks & PubSubHubbub,还有Flash sockets等其他技术。话虽如此,上面列出的这些技术都有各自的弱点,并且没有解决根本问题:旧式的浏览器并不是为双向通信设计的。
HTML5中的WebSockets改变了这个状况,它从基础上设计了任意数据(二进制或文本)的双工通信。WebSockets是浏览器上的TCP,不像BOSH或者类似物,WebSockets只需要一个连接,这意味着对服务端和客户的更好的资源利用。并且,WebSockets适用于代理和防火墙环境,能通过SSL和HTTP通道完成传输——现有的均衡负载、代理和路由都能正常工作。
浏览器中的WebSockets:Chrome,Firefox和Safari
WebSocket API还只是草稿,不过主流浏览器的开发人员已经实现了大部分功能。Chrome从开发版本(4.0.249.0)开始官方支持WebSocket API并且默认开启。Webkit每日构建版已经支持WebSockets,而Firefox有一个未决补丁正在复审。换句话说,要主流接受WebSocket还需时日,但作为开发者的我们可以开始思考WebSockets启用后的改良架构。一个最小的jQuery例子: More
RSS
近期评论