a p*_*erd 40 comet http websocket
BOSH是......
一种传输协议,通过有效地使用多个同步HTTP请求/响应对来模拟两个实体(例如客户端和服务器)之间的长期双向TCP连接的语义,而无需使用频繁的轮询或分块响应.
这听起来像WebSockets和HTTP长轮询,除了它使用两个开放的HTTP连接而不是一个,并且不扩展HTTP协议.
两个协议之间有什么区别,哪个用例更喜欢WebSockets而不是BOSH?
kan*_*aka 102
首先让我解决WebSockets准备情况:
默认情况下,Chrome,Safari和iOS(iPhone和iPad)都提供并启用了Hixie-76协议的WebSockets实现.Hixie-76协议也出厂但默认在Firefox 4和Opera 11中禁用.web- socket-js项目是一个Flash shim/polyfill,它为任何带Flash的浏览器添加了WebSocket(Hixie-76)支持.
换句话说,WebSockets几乎适用于所有浏览器.
Opera和Mozilla之所以默认选择禁用该协议,是因为理论上担心可能会有一些破坏的HTTP代理/中介使用协议的Hixie版本进行攻击/中毒.同样的问题也适用于Flash,但Mozilla和Opera对他们发布的代码负有更高的责任.HyBi版本的协议(该协议被移至IETF HyBi工作组)解决了安全问题.
Mozilla,Opera,谷歌和微软都致力于HyBi协议的实施(尽管微软目前正在单独下载它们).有一个支持HyBi-07 的web-socket-js分支.
更新:截至2013年2月,Chrome 14,Firefox 7,IE10,Opera 12.1,Safari 6.0以及web-socket-js Flash shim/polyfill支持最新的HyBi/IETF RFC 6455规范.在移动设备上,iOS 6.0上的Safari,Opera Mobile 12.1,Android版Chrome 14,Android版Firefox 7和Blackberry 7支持IETF6455.原始默认Android浏览器没有任何WebSocket支持.
WebSocket服务器易于实现.有许多独立和插件实现,其中大多数支持Hixie-76和HyBi协议版本:
BOSH与WebSockets:
更新:
刚刚发现了一个视频,其中Ian Fette讨论了WebSockets优于Channel API的优势,类似于BOSH(44:00)
| 归档时间: |
|
| 查看次数: |
15483 次 |
| 最近记录: |