socket连接方式的发展

一 . 轮询

# 轮询
    客户端向服务器不断发起类似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

猜你喜欢

转载自www.cnblogs.com/attila/p/10713955.html
今日推荐