最近开发项目需要用到socket.io,去npm搜索了一下发现三个比较火关于websocket的库,分别是Websocket、socket.io、ws。
本篇文章主要了解下什么是websocket和socket.io的使用。
首先什么是websocket呢?
WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。
在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
WebSocket 解决了什么问题
在不使用 WebSocket 时,如果我们需要建立一条长连接,只能通过轮询或者长轮询,当出现类似体育赛事、聊天室、实时位置之类的场景时,客户端要获取服务器端的变化,就只能通过轮询(定时请求)来了解服务器端有没有新的信息变化。
WebSocket 的出现,让服务器端可以主动向服务器端发送信息,使得浏览器具备了实时双向通信的能力,这就是 WebSocket 解决的问题。