首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Comet背景架构

Comet背景架构
EN

Stack Overflow用户
提问于 2012-04-23 15:28:13
回答 1查看 407关注 0票数 2

我有一些关于Comet的信息,但我想知道它是如何保持连接打开的(从客户端到服务器)。它如何做到这一点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-23 15:51:51

从长远来看,Comet或长轮询ajax不会使连接保持打开状态。

HTTP是无状态的,它发送请求并获得响应。就这样。

那么,连接看起来是如何保持打开的呢?因为它是滥用的HTTP请求的

当您发送请求时,客户端将等待响应,直到响应到来,或者直到服务器确定此连接已达到其超时。

在Comet中,服务器故意不立即响应。只有当他想要发送响应时它才会应答。这就是客户端发送HTTP请求并等待响应或超时的原因。

这样,当它只是滥用HTTP请求的超时属性时,看起来就像是某种从服务器到客户端的推送。

例如,这是一些comet代码(为了简短起见,使用jQuery ):

代码语言:javascript
复制
setTimeout( function comet () {
    $.get( '/some/url', {}, function ( data ) {
        // Process the request's response

        // And recall setTimeout
        setTimeout( comet, 1 )
    } )
}, 1 )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10276467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档