一 . 轮询
# 轮询
客户端向服务器不断发起类似Http请求
服务器不断的响应客户端
带上你的身份牌 - 服务器校验身份
大爷去找你的消息 - 服务器获取你应该拿到数据
if:拿到数据
else:拿不到数据 - 再次发起请求询问服务器消息
劣势:
1.双端资源浪费
2.带宽资源占用
3.不能保证数据实时性
上个世纪90年代 - 本世纪初:
24bps == 4-6KB
CPU == 800MHZ
内存 == 256MB
QQ -- ICQ
二 . 长轮询
# 长轮询
1.客户端向服务器发起一个请求
2.服务器保持这个请求 不返回不响应
3.一定时间之后,服务器抛弃 or 返回
4.客户端收到请求 立即再次发起保持
你去传达室,大爷款待你喝茶,
喝茶等消息(保持)
上厕所或者大爷撵你走(断开)
再次回去喝茶等消息(保持)
劣势:
1.服务器资源浪费
2.不能保证数据实时性(可能在上厕所的时候来消息)
优势:
1.节省客户端资源(不用总去)
2.保证数据有效
当时的环境:本世纪初 - 目前
128bps == 20-30KB
Cpu == 1.4GHZ 奔腾4
内存 == 512MB
三 . 长连接
# 长连接
永久保持连接
1.你和大爷之间装了一台电话分机
2.你派人告诉大爷你的分机号码
3.大爷拨通分机
4.你告诉大爷,有消息说句话,我派人去拿
5.你和大爷同时开启了闭音(我平常说话你听不见)
劣势:
1.服务器CPU要求较高
优势:
1.节省大量资源
2.数据实时有效性
3.带宽几乎不占用
现在的环境:
100mps == 百兆光纤 == 5MB/s || 2KB
CPU == 16核32线程 i9 3.2GHZ
内存 == 16GB