精华内容
下载资源
问答
  • websocket,长轮询和轮询

    2021-01-20 11:29:54
    长轮询和短轮询比起来,明显减少了很多不必要的http请求次数,相比之下节约了资源。长轮询的缺点在于,连接挂起也会导致资源的浪费。(长轮询是三个中最消耗资源的) 参考地址: https://www.cnblogs.

    websocket(短轮询)

    服务端就可以主动推送信息给客户端

    应用:聊天通讯,多点更新数据

    轮询

    正常http接口反复请求

    长轮询

    当服务器收到客户端发来的请求后,服务器端不会直接进行响应,而是先将这个请求挂起,有更新则返回。

    应用:需要实时更新,减少时间差的业务,如投票,买房

    区别
    长轮询和短轮询比起来,明显减少了很多不必要的http请求次数,相比之下节约了资源。长轮询的缺点在于,连接挂起也会导致资源的浪费。(长轮询是三个中最消耗资源的)

    参考地址:
    https://www.cnblogs.com/jiangzhaowei/p/8781635.html

    展开全文
  • 浅谈Websocket、Ajax轮询和长轮询(long p0ll)最近看到了一些介绍Websocket的文章,觉得挺有用,所以在这里将自己的对其三者的理解记录一下。1.什么是WebsocketWebsocket是HTML5中提出的新的协议,注意,这里是协议,...

    浅谈Websocket、Ajax轮询和长轮询(long p0ll)

    最近看到了一些介绍Websocket的文章,觉得挺有用,所以在这里将自己的对其三者的理解记录一下。

    1.什么是Websocket

    Websocket是HTML5中提出的新的协议,注意,这里是协议,可以实现客户端与服务器端的通信,实现服务器的推送功能。

    2.Websocket和HTTP协议是什么关系

    简单来说,Websocket和HTTP有关系,但是关系不大,它们的关系类似于数学中的交集,如下图(借用的Ovear的图)。Websocket借用了HTTP协议来完成一部分握手过程。

    f7906a9a13439aec8faf691fc59ea67b.png

    3.Websocket的握手过程

    当客户端要建立Websocket连接时,其向服务器发送:

    GET /chat HTTP/1.1

    Host: xxx.com

    Upgrade: websocket

    Connection: Upgrade

    Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==

    Sec-WebSocket-Protocol: chat, superchat

    Sec-WebSocket-Version: 13

    Origin: http://xxx.com

    其中,Upgrade: websocket和Connection: Upgrade告诉服务器,我要建立的是websocket连接;Sec-WebSocket-Key部分服务器加密后还要返回浏览器,确保建立的是websocket连接;Sec-WebSocket-Version: 13是websocket的版本号。

    当服务器接收到上述包后,会返回一下内容:

    HTTP/1.1 101 Switching Protocols

    Upgrade: websocket

    Connection: Upgrade

    Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=

    Sec-WebSocket-Protocol: chat

    它告诉客户端,我已经切换到websocket协议了,Sec-WebSocket-Accept就是Sec-WebSocket-Key加密后的内容,这样,一个websocket连接就建立了。

    4.Websocket怎么工作的

    客户端:我要建立websocket连接

    服务器端:好的,已经切换到websocket协议,websocket连接已经建立

    客户端:有什么消息要及时告诉(推送)我

    服务器端:好的

    服务器端:xxxxxx

    服务器端:yyyyyyy

    。。。。。

    其优点就是,只要建立一次连接,就可以连续不断的得到服务器推送的消息,节省带宽和服务器端的压力。

    5.Ajax轮询怎么实现的

    其实,这个大多数小伙伴都知道了,ajax轮询模拟长连接就是每个一段时间(0.5s)就向服务器发起ajax请求,查询服务器端是否有数据更新

    客户端:有没有新消息

    服务器端:没有。。

    客户端:有没有新消息

    服务器端:有,xxxxx

    客户端:有没有新消息

    服务器端:没有。。

    客户端:有没有新消息

    服务器端:没有。。

    。。。。。。

    其缺点显而易见,每次都要建立HTTP连接,即使需要传输的数据非常少,所以这样很浪费带宽;同时,这个过程是被动性的,即不是服务器主动推送的。

    6.长轮询(long poll)

    客户端:有没有新信息(Request)

    服务端:没有,

    (时间一直的流逝。。。,当等待到有消息的时候)

    服务器端:给你xxxx(Response)

    客户端:有没有新消息(Request)

    。。。。。

    其缺点也是显而易见的,同ajax轮询一样,也是每次都要建立HTTP连接,也都是被动的。而且这种方法对服务器的并行要求比较大,因为在没有消息的时候,连接照样保持,而这时需要其它信息是又要建立新的连接(就连接保持中)。

    7.参考:

    a.百度

    b.http://www.zhihu.com/question/20215561/answer/40316953

    展开全文
  • 浅谈Websocket、Ajax轮询和长轮询(long p0ll)  最近看到了一些介绍Websocket的文章,觉得挺有用,所以在这里将自己的对其三者的理解记录一下。 1.什么是Websocket  Websocket是HTML5中提出的新的协议,注意,...

    浅谈Websocket、Ajax轮询和长轮询(long p0ll)

      最近看到了一些介绍Websocket的文章,觉得挺有用,所以在这里将自己的对其三者的理解记录一下。

    1.什么是Websocket

      Websocket是HTML5中提出的新的协议,注意,这里是协议,可以实现客户端与服务器端的通信,实现服务器的推送功能。

    2.Websocket和HTTP协议是什么关系

      简单来说,Websocket和HTTP有关系,但是关系不大,它们的关系类似于数学中的交集,如下图(借用的Ovear的图)。Websocket借用了HTTP协议来完成一部分握手过程。

      

    3.Websocket的握手过程

      当客户端要建立Websocket连接时,其向服务器发送:

    GET /chat HTTP/1.1
    Host: xxx.com
    Upgrade: websocket
    Connection: Upgrade
    Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
    Sec-WebSocket-Protocol: chat, superchat
    Sec-WebSocket-Version: 13
    Origin: http://xxx.com
      其中,Upgrade: websocket和Connection: Upgrade告诉服务器,我要建立的是websocket连接;Sec-WebSocket-Key部分服务器加密后还要返回浏览器,确保建立的是websocket连接;Sec-WebSocket-Version: 13是websocket的版本号。
    当服务器接收到上述包后,会返回一下内容:
    HTTP/1.1 101 Switching Protocols
    Upgrade: websocket
    Connection: Upgrade
    Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
    Sec-WebSocket-Protocol: chat
      它告诉客户端,我已经切换到websocket协议了,Sec-WebSocket-Accept就是Sec-WebSocket-Key加密后的内容,这样,一个websocket连接就建立了。
    4.Websocket怎么工作的
          客户端:我要建立websocket连接
          服务器端:好的,已经切换到websocket协议,websocket连接已经建立
            客户端:有什么消息要及时告诉(推送)我
            服务器端:好的
            服务器端:xxxxxx
            服务器端:yyyyyyy
           。。。。。
      其优点就是,只要建立一次连接,就可以连续不断的得到服务器推送的消息,节省带宽和服务器端的压力。
    5.Ajax轮询怎么实现的
      其实,这个大多数小伙伴都知道了,ajax轮询模拟长连接就是每个一段时间(0.5s)就向服务器发起ajax请求,查询服务器端是否有数据更新
          客户端:有没有新消息
          服务器端:没有。。
          客户端:有没有新消息
          服务器端:有,xxxxx
          客户端:有没有新消息
          服务器端:没有。。
          客户端:有没有新消息
          服务器端:没有。。
          。。。。。。
      其缺点显而易见,每次都要建立HTTP连接,即使需要传输的数据非常少,所以这样很浪费带宽;同时,这个过程是被动性的,即不是服务器主动推送的。
    6.长轮询(long poll)
          客户端:有没有新信息(Request)
          服务端:没有,
          (时间一直的流逝。。。,当等待到有消息的时候)
          服务器端:给你xxxx(Response)
          客户端:有没有新消息(Request)
          。。。。。
      其缺点也是显而易见的,同ajax轮询一样,也是每次都要建立HTTP连接,也都是被动的。而且这种方法对服务器的并行要求比较大,因为在没有消息的时候,连接照样保持,而这时需要其它信息是又要建立新的连接(就连接保持中)。
    7.参考:
      a.百度
      b.http://www.zhihu.com/question/20215561/answer/40316953

    转载于:https://www.cnblogs.com/chengdabelief/p/6686493.html

    展开全文
  • 2.Websocket和HTTP协议是什么关系 简单来说,Websocket和HTTP有关系,但是关系不大,它们的关系类似于数学中的交集Websocket借用了HTTP协议来完成一部分握手过程。 3.Websocket的握手过程 当客户端要建

    1.什么是Websocket

      Websocket是HTML5中提出的新的协议,注意,这里是协议,可以实现客户端与服务器端的通信,实现服务器的推送功能。

    2.Websocket和HTTP协议是什么关系

      简单来说,Websocket和HTTP有关系,但是关系不大,它们的关系类似于数学中的交集

    Websocket借用了HTTP协议来完成一部分握手过程。

      

    3.Websocket的握手过程

      当客户端要建立Websocket连接时,其向服务器发送:

    GET /chat HTTP/1.1
    Host: xxx.com
    Upgrade: websocket
    Connection: Upgrade
    Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
    Sec-WebSocket-Protocol: chat, superchat
    Sec-WebSocket-Version: 13
    Origin: http://xxx.com
      其中,Upgrade: websocket和Connection: Upgrade告诉服务器,我要建立的是websocket连接;Sec-WebSocket-Key部分服务器加密后还要返回浏览器,确保建立的是websocket连接;Sec-WebSocket-Version: 13是websocket的版本号。
    当服务器接收到上述包后,会返回一下内容:
    HTTP/1.1 101 Switching Protocols
    Upgrade: websocket
    Connection: Upgrade
    Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
    Sec-WebSocket-Protocol: chat
      它告诉客户端,我已经切换到websocket协议了,Sec-WebSocket-Accept就是Sec-WebSocket-Key加密后的内容,这样,一个websocket连接就建立了。
    4.Websocket怎么工作的
          客户端:我要建立websocket连接
          服务器端:好的,已经切换到websocket协议,websocket连接已经建立
            客户端:有什么消息要及时告诉(推送)我
            服务器端:好的
            服务器端:xxxxxx
            服务器端:yyyyyyy
           。。。。。
      其优点就是,只要建立一次连接,就可以连续不断的得到服务器推送的消息,节省带宽和服务器端的压力。
    5.Ajax轮询怎么实现的
      其实,这个大多数小伙伴都知道了,ajax轮询模拟长连接就是每个一段时间(0.5s)就向服务器发起ajax请求,查询服务器端是否有数据更新
          客户端:有没有新消息
          服务器端:没有。。
          客户端:有没有新消息
          服务器端:有,xxxxx
          客户端:有没有新消息
          服务器端:没有。。
          客户端:有没有新消息
          服务器端:没有。。
          。。。。。。
      其缺点显而易见,每次都要建立HTTP连接,即使需要传输的数据非常少,所以这样很浪费带宽;同时,这个过程是被动性的,即不是服务器主动推送的。
    6.长轮询(long poll)
          客户端:有没有新信息(Request)
          服务端:没有,
          (时间一直的流逝。。。,当等待到有消息的时候)
          服务器端:给你xxxx(Response)
          客户端:有没有新消息(Request)
          。。。。。
      其缺点也是显而易见的,同ajax轮询一样,也是每次都要建立HTTP连接,也都是被动的。而且这种方法对服务器的并行要求比较大,因为在没有消息的时候,连接照样保持,而这时需要其它信息是又要建立新的连接(就连接保持中)
    所以如果要做服务端消息推送,那还是使用websocket比较好转载地址:https://www.cnblogs.com/chengdabelief/p/6686493.html
    展开全文
  • 聊天是需要连接的,在一些场景下我们不想使用比较耗费资源的连接,又想实现数据监听,这时候我们就会使用ajax的轮询 ajax轮询一般分为两种: 第一种是设定一个定时器,无论有无结果返回,时间一到就会继续发起...
  • 轮询 轮询:就是客户端向服务端接二连三的询问是否有新消息 如下: 客户端:啦啦啦,有没有新信息(Request)服务端:没有(Response)客户端:啦啦啦,有没有新信息(Request)服务端:没有。。(Response)客户端:...
  • 1.什么是Websocket ... 2.Websocket和HTTP协议... 简单来说,Websocket和HTTP有关系,但是关系不大,它们的关系类似于数学中的交集,如下图(借用的Ovear的图)。Websocket借用了HTTP协议来完成一部分握手过程。  ...
  • 1.什么是Websocket ... 2.Websocket和HTTP协议... 简单来说,Websocket和HTTP有关系,但是关系不大,它们的关系类似于数学中的交集,如下图(借用的Ovear的图)。Websocket借用了HTTP协议来完成一部分握手过程。  ...
  • 后面我们开始理解Websocket以及Ajax轮询和长连接(long pull)。 一、websocket与http WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环...
  • Ajax短轮询,长轮询,SSE(Server Sent Event)轮询 websocket轮询 AJAX轮询方式 客服端以用户定义的时间间隔去服务器上查询最新的数据。 短轮询,客服端会对服务器在短时间内发送出多个请求。 长轮询或者COMET。...
  • ——websocket、ajax轮询 sf2gis@163.com 2015年7月31日   1 服务器推送websocket:服务端主动向客户端发消息。 目标:客户端服务器建立连接,服务端与客户端可实时收发数据。 原理:使用HTTP协议建立全...
  • php websocket-网页实时聊天之PHP实现websocket(ajax长轮询和websocket都可以时间网络聊天室) 一、总结 1、ajax长轮询和websocket都可以时间网络聊天室 2、websocketwebsocket是html5的新特性,是一种http...
  • Ajax轮询,Ajax长轮询和websocket.docx
  • tornado 10 长轮询和 websocket 一、长轮询 #在网页,我们经常扫码登录,那么问题来了,前端是如何知道用户在手机上扫码登录的呢  这里就需要用到长轮询   #长轮询 #客户端能够不断地向服务器发送...
  • 一、轮询 在一些需要进行实时查询的场景下应用比如投票系统:  大家一起在一个页面上投票  在不刷新页面的情况下,实时查看投票结果 1、后端代码 from flask import Flask, render_template, request, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 692
精华内容 276
关键字:

websocket和长轮询