今天想了解一下关于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
网友评论