zoukankan      html  css  js  c++  java
  • 了解轮询、长轮询、长连接、websocket

    业务开发中我们往往会有一些需要即时通信的场景,比如微信扫码登录、聊天功能。

    下面这四种方式都可以实现即时通信。

    轮询:

     浏览器通过定时器每隔一段时间向服务器端发送请求,服务器端收到请求并响应请求。没有新消息时依然需要不断轮询,比较消耗资源。

    长轮询:

      浏览器端设置较长的等待时间,当发送请求之后,服务器在等待时间之内有消息返回,则返回成功,否则,超过等待时间客户端就会自动响应超时并重新发起一个长轮询请求。

      相比短轮询,节约了资源,但是在连接挂起阶段也导致了资源浪费。

    (为什么我们项目中,微信扫码登录用了短轮询,时间是500ms,orz。。。)

    长连接:

    不需要客户端先发送请求,服务端可以推送数据到客户端。节约资源,提升应用性能。

    (怎么实现?)

    websocket:

    基于http协议在客户端和服务端建立连接,基于websocket实现数据的实时双向通信。

    兼容性角度:短轮询>长轮询>长连接>websocket

    性能角度:短轮询<长轮询<长连接<websocket

  • 相关阅读:
    IOS基础之 (二) 面向对象思想
    Android学习笔记02-Mac下编译java代码
    常用数据库 JDBC URL 格式
    MySQL学习笔记04 插入中文时出现ERROR 1366 (HY000)
    bootstrap学习总结-06 按钮
    H2嵌入式数据库
    02 C语言指针
    页面技巧
    RequireJS进阶(二)
    RequireJS进阶(一)
  • 原文地址:https://www.cnblogs.com/yy95/p/9834978.html
Copyright © 2011-2022 走看看