博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
comet 客户端处理机制
阅读量:5740 次
发布时间:2019-06-18

本文共 820 字,大约阅读时间需要 2 分钟。

hot3.png

1.首先创建一个httpClient。

2.发送握手消息 
  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,发送订阅请求信息

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

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

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

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

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

 

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

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

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

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

转载于:https://my.oschina.net/airship/blog/779788

你可能感兴趣的文章
es 加磁盘扩容
查看>>
linux下使用过的命令总结(未整理完)
查看>>
时间助理 时之助
查看>>
英国征召前黑客组建“网络兵团”
查看>>
Silverlight 2.5D RPG游戏“.NET技术”技巧与特效处理:(十二)魔法系统
查看>>
PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...
查看>>
pyjamas build AJAX apps in Python (like Google did for Java)
查看>>
Java not support java EE1.3
查看>>
LAMP环境搭建1-mysql5.5
查看>>
spring boot view override
查看>>
我的友情链接
查看>>
centos5.9使用RPM包搭建lamp平台
查看>>
关于C#面向对象2
查看>>
Javascript String类的属性及方法
查看>>
[LeetCode] Merge Intervals
查看>>
SharePoint 读取 Site Columns 的数据并绑定到DropdownList
查看>>
使用 axios 详解
查看>>
第 68 章 Logical Volume Manager (LVM)
查看>>
IPA提交APPStore问题记录(一)
查看>>
有利于seo优化的网站地图不能取巧
查看>>