HTML5 WebSocket

今天想了解一下关于websocket, 这个已经很火了,现在先了解,这个有个库socket.io, 处理了很多不兼容的问题

WebSocket是什么

学习需要默写

WebSocket是一种协议,而不是一种技术,它是tcp建立双向通信的协议,允许服务器主动向客户端发送数据,只要建立一次连接,可以长时间通信,所以它的特点如下

特点:

  • 是一种协议
  • 允许服务端向客户端发送数据
  • 只需建立一次连接
  • 可以长时间不中断通信,并进行双向通信
(1)建立在 TCP 协议之上,服务器端的实现比较容易。

(2)与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。

(3)数据格式比较轻量,性能开销小,通信高效。

(4)可以发送文本,也可以发送二进制数据。

(5)没有同源限制,客户端可以与任意服务器通信。

(6)协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。

为什么需要

一项新的技术产生不会凭空产生的,它是想解决什么问题的

目前,我们在客户端向获取最新的数据,采用的是如下方法:

  • 轮询comet
  • 长连接

上面的方法,存在很多问题,最大的问题是耗资源,宽带资源

利用socket就可以解决这个问题

还有就是HTTP 协议有一个缺陷:通信只能由客户端发起。

如何使用

客户端向服务器发送,然后服务器接收,打开就可以建立长时间连接

资源

后记

突然发现很多网站的通知,就是利用这个方法,向客户端进行通知的,然后建立长时间的连接


参考:
https://zh.wikipedia.org/wiki/WebSocket
http://www.ruanyifeng.com/blog/2017/05/websocket.html

你可能感兴趣的:(HTML5 WebSocket)