comet 客户端处理机制

1.首先创建一个httpClient。
2.发送握手消息 http://192.168.0.218:8086/cometd/cometd/handshake
  channel:/meta/handshake json:{"supportedConnectionTypes":["long-polling"],"channel":"/meta/handshake","version":"1.0"}

3.创建一个destinations 给httpClient.

4.使用destinations 发送握手http消息,需要先获取 空闲的connection。
 
  此时属于destinations 的connection为null

5.将要发送的http消息写入到队列缓存中。

6.创建一个http connection,异步创建,创建好了给destinations。

7.连接创建好后,会将队列中的http消息发送至服务端。


1,发送订阅请求信息url:http://192.168.0.218:8086/cometd/cometd/subscribe

2.此时destinations 中空闲连接的队列为空,之前的连接还没有放入空闲连接队列。(虽然之前的握手响应已经回来,但这块代码在 将空闲连接放入代码之前,所以那个连接还没写入空闲队列。)

3.创建一个http connection,异步创建,创建好了给destinations。

4.将要发送的http消息写入到队列缓存中。

5.创建一个http connection,异步创建,创建好了给destinations。

6.连接创建好后,会将队列中的http消息发送至服务端。

 

后续的发送心跳连接,此时握手时创建的连接已经放入空闲队列,所以不需要创建新的连接。

发送的心跳连接请求 是30秒后才返回,而一返回响应,又会立即占用这条连接,发送请求,

所以在之后的交互中,这条连接只能发送心跳请求,接收心跳响应,接收服务端推送的信息。

连接空闲的标准应该是:当一条请求响应没有回来时,这条连接就不为空闲。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值