基于HTTP的长轮询简单实现

本文介绍了HTTP长轮询的通信方式,不同于短连接,长轮询在服务器无数据时会保持连接等待,直到有数据才响应客户端,以此提高实时性。文中给出了简单的web客户端和服务器端代码示例。
摘要由CSDN通过智能技术生成

Web客户端与服务器之间基于Ajax(http)的常用通信方式,分为短连接与长轮询。

短连接:客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。

在长轮询机制中,客户端像传统轮询一样从服务器请求数据。然而,如果服务器没有可以立即返回给客户端的数据,则不会立刻返回一个空结果,而是保持这个请求等待数据到来(或者恰当的超时:小于ajax的超时时间),之后将数据作为结果返回给客户端。

长轮询机制如下图所示:

web客户端代码如下:

//向后台长轮询消息function longPolling(){
    $.ajax({
     async : true,//异步
     url : 'longPollingAction!getMessages.action', 
     type : 'post',
     dataType : 'json',
     data :{},
     timeout : 30000,//超时时间设定30秒
        error : function(xhr, textStatus, thrownError) {
        longPolling();//发生异常错误后再次发起请求                  },
      success : function(response) {
         message =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值