扒一扒WebSocket
在之前的nodejs项目中自己有尝试接入WebSocket,所以在面试官问到项目的时候也会提到WebSocket,但是之前自己也只是在实践阶段,并没有做深入了解。刚好实习的时候又接触到了熟悉的WebSocket,本着学习的目的,这次就深挖一下WebSocket。
什么是WebSocket?
WebSocket
是一种在单个TCP连接上进行全双工通信的协议。WebSocket
使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。
在 WebSocket API
中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接, 并进行双向数据传输。(维基百科)
WebSocket
本质上一种计算机网络应用层的协议,用来弥补 http
协议在持久通信能力上的不足。
WebSocket 协议在2008年诞生,2011年成为国际标准。现在最新版本浏览器都已经支持了。
它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。
WebSocket 的其他特点包括:
-
(1)建立在 TCP 协议之上,服务器端的实现比较容易。
-
(2)与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能