comet学习(三)cometd心跳机制

本文详细介绍了客户端和服务端的心跳交互机制,包括客户端发起心跳请求的过程、服务端响应的时间间隔、连接断开后的重连策略,以及客户端主动断开连接时的服务端处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 1. 客户端发起心跳请求:默认30秒后服务端返回响应,收到响应后,客户端立即发起下一次心跳请求。
  
   也就是客户端与服务端心跳交互中,虽然第一次是由客户端发起,但服务端不会立即返回响应,而是三十秒后返回响应,
   这种交互更多的像是由服务端发起连接保持交互。

 

  2. 当服务端关闭或断开与客户端的连接,cometd客户端底层实现会立即通知客户端应用实现的连接监听器。

    (最底层发起者是AsyncHttpConnection.handle)

  3. 此时cometd的实现会开启定时重连线程,重现向服务端发起初始化请求,第一次一秒执行,第二次延迟两秒,一次类 推,直到再次与服务端建立连接。

 

  4. 跟踪端口监听状态得出:客户端先发送握手请求,然后发送连接请求,只后的心跳机制,和接收服务端推送的信息,都是在一个连接上进行,这个连接一直存在,只有发送其它的信息,才通过新的端连接发送。

 

  5. 如果是客户端主动断开连接,由于服务端处理客户端的心跳请求默认是30秒后才回响应,所以服务端30秒后才会检测到客户端断开连接了,此时会清除为客户端建立的session。

 

  30秒的间隔时间如果过长,则服务端检测客户端连接断开则会延迟太长,30秒的的间隔时间,如果太短,则会增加客户端的心跳请求次数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值