持久化双向通信协议Websocket-1

websocket是一种网络通讯协议,浏览器只需要与服务器握手一次就能保持通信。是伴随着H5发布的一种新兴的协议。它是基于TCP的一种的协议,他与服务器的握手是Http的复写。那么为什么有了http协议,为什么还要有websocket呢?


    这是因为http协议是一种无状态的协议,且与服务器的通信只要由客户端发送,极大的影响了通信的效率。

而websocket就不一样了,它是一种全双工通信协议。即不仅仅客户端可以与服务器发送消息,服务器也可以给客户端发送消息(参考订阅/发布模式),进行通信。例如天气的推送,聊天室等。

并且websocket可以实现持续的进行长连接。而http通信完后即断开连接。

在websocket发布之前,http需要每隔一小段时间就像服务器发送请求,看 服务器的数据是又有更新,是否有消息要发送给客户端,就不断的轮询服务器(不断的发送请求),而一个http请求需要由发送时间,服务器的处理时间,响应时间。这期间会造成大量资源的消耗,由不得不这样做。而websocket就不需要这样。它的连接只需要一次,就可以保持持久的实时通信。

http与websocket对比
http(超文本传输协议)websocket
无状态协议  需要多次连接,需要轮询服务器,以确保信息的随时更新 持续状态协议,只需要一次连接就可以实时保持通讯
请求只能由客户端发出,b不仅仅客户端向服务器发起请求,服务器也可向客户端发出信息,实现双向通信。是全双工通信
较多的额外费用(overhead),每次发送消息都会有一个HTTP header信息,而且如果不用Keep-Alive每次还都要握手不需要这么携带这么多的信息。只需要携带要发送的信息
websocket客户端的握手是一个基于http协议的握手,j既可以发送文本,也可以发送二进制的数据。

websocket建立在TCP协议之上。服务器端实现起来比较容易。

无需考虑同源策略的限制,可以与任意服务器进行通信。

目前越来越多的浏览器实现了websocket,它已经称为了一种趋势。

来自[阮一峰老师](http://www.ruanyifeng.com/blog/2017/05/websocket.html)


目前它的实现有MDN API,可以去网站上看API。

    

参考阮一峰老师博客等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值