协议-【5】Websocket协议

发布时间:2022-07-02 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了协议-【5】Websocket协议脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

 概念:

        Websocket 是HTML5出的东西(协议),也就是说HTTP协议没有变化,但HTTP是不支持持久连接的(长连接,循环连接的不算), 

         Websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说,可以把 WebSocket 看成是 HTTP 协议为了支持长连接所打的一个大补丁 

协议-【5】Websocket协议

Websocket只需要一次HTTP握手,就可以做到不断的信息传送了。(在程序设计中,这种设计叫做回调,即:你有信息了再来通知我,而不是我傻乎乎的每次跑来问你), WebSocket 还是一个双通道的连接,在同一个 TCP 连接上可以多次   信息,由客户主动询问,转换为服务器(推送)有信息的时候就发送(当然客户端还是等主动发送信息过来的。。)

内容拓展:

  HTTP1.0:  每次请求都要创建TCP连接(就是一个Request 对应一个Response)

  HTTP1.1:  进行了改进,它默认开启长连接 keep-alive(使用keep-alive参数来告知服务器端要建立一个长连接) ,也就是说,在一个TCP连接中,可以发送多个Http的Request,接收多个Response(一个TCP连接上可以传送多个HTTP请求和响应)

//在请求头header里,由浏览器/服务器添加
Connection:keep-alive

 备注:但是请记住 Request = Response , 在HTTP中永远是这样,也就是说一个request只能有一个response。而且这个response 也是 被动的,不能主动发起。

建立持久连接的方式:

1: ajax轮询让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息。

                      request--->response , request--->response ,  request--->response ........ loop

3: long poll采取的是阻塞模型(一直打电话,没收到就不挂话)

                     request--->。。。。。。。reponse(没有消息,就不返回reponse,等待到有消息的时候,再给你(Response))

                     下个消息获取再次建立连接:request--->。。。。reponse(没有消息,就不返回reponse)

         所谓的 polling 是指从客户端(一般就是浏览器)不断主动的向服务器发 HTTP 请求 查询是否有新数据

上面 两种方式都是在不断地建立HTTP连接,然后等待服务端处理,可以体现HTTP协议的另外一个特点,被动性(服务端不能主动联系客户端,只能有客户端发起

3: webscoket只需建立一次连接后,就可以源源不断 收 ,信息了,形成了通道。

参考资料:

        https://www.zhihu.COM/question/20215561

脚本宝典总结

以上是脚本宝典为你收集整理的协议-【5】Websocket协议全部内容,希望文章能够帮你解决协议-【5】Websocket协议所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。