The BOSH Technique

BOSH: Bidirectional-streams Over Synchronous HTTP
http://www.xmpp.org/extensions/xep-0124.html#technique

主要内容是:
connection manager 直到有数据要发送给client时,才响应请求。
client 一收到来自connection manager的response就再发一个request给connection manager。
这样connection manager总是有一个来自client的request,可以用来push数据。

如果client要发送数据给connection manager,只需发送第二个request(包含要发送的数据)给connection manager。
这时connection manager总是会responds第一个被holding的request,无论是否有数据要发送给client。
这样可以确保client可以接着发送下一个request(client同时打开的HTTP connections不会超过2个)

如果双方(client 和 connection manager)长时间(一般是几分钟)没有联系,connection manager就会responds一个空数据给client,这回触发client给connection manager发送一个新的request。
connection manager以此来判断网络是否断开。

shallon 的 "初探BOSH (Bidirectional-streams Over Synchronous HTTP)" 有更详细的翻译
http://shallon.iteye.com/blog/126428

你可能感兴趣的:(html,Blog)