作者:张张
在这篇文章中,我们将讨论年你应该考虑的八个Node.jsWebSocket库。
SockJS[1]
ws[2]
Socket.IO[3]
FayeWebSocket[4]
SocketCluster[5]
Sockette[6]
Feathers[7]
要开始使用这些库中的任何一个,您需要在本地计算机上安装npm和Node.js。在开始之前,让我们介绍一下WebSockets的一些重要背景。
WebSockets是如何工作的?
传统上,客户端和服务器通过遵循请求/响应周期进行通信。但是,WebSockets允许您以非标准方式在客户端和服务器之间进行通信。
WebSockets在服务器和客户端之间提供了一个开放的连接,允许在服务器和客户端之间进行简单、即时的双向通信,而无需轮询服务器。WebSockets对于构建实时应用程序特别有用,例如实时消息传递、实时流媒体、推送通知、跟踪、财务更新和体育更新等等。
现在我们知道了WebSockets的工作原理,让我们来看看一些Node.js库,您可以使用它们来更轻松地使用WebSockets进行开发。
SockJS
SockJS是一个JavaScript库,它以类似于本地WebSocketsAPI的方式提供客户端和服务器之间的通信。SockJS[8]的功能与sockjs-node[9]形式的服务器对应,以及SockJS-client[10],一个JavaScript客户端库。
在撰写本文时,SockJS在GitHub上有超过颗星,在npm上每周下载近万次,可以说是Node.js的最佳WebSocket库之一。SockJS遵循HTML5WebSocketAPI的规则,提供类似于WebSocket的对象。
ws
ws在GitHub上拥有超过颗星,在npm上每周下载量约为万次,是可用的最受欢迎的Node.jsWebSocket库之一。
ws是一个快速、易于使用、文档齐全且经过全面测试的WebSocket客户端和服务器实现,几乎支持所有浏览器。因此,ws是许多开发人员最喜欢的首选库,这意味着它的社区是活跃且强大的。
安装ws非常简单,可以使用以下命令之一完成:
复制npminstallws//npmiws1.2.3.
要开始使用wsWebSocket库,请查看文档[11]。
复制npminstall--save-optionalbufferutil1.
上述命令允许你有效地执行屏蔽和解除屏蔽WebSocket帧的数据有效载荷等操作。
复制npminstall--save-optionalutf-8-validate1.
要有效地检查消息是否包含有效的UTF-8,请运行上述命令。
Socket.IO
Socket.IO[12]创建于年,是一个流行的WebSocket库,被Trello和Microsoft等多家大公司使用。Socket.IO是可靠的,提供负载平衡、支持二进制流、处理代理等功能。
然而,Socket.IO的主要用途是促进浏览器和服务器之间的实时、双向和基于事件的通信。与ws一样,Socket.IO有一个Node.js服务器和一个JavaScript客户端库。
此外,Socket.IO还包括一些功能,如支持在有代理或负载均衡器的情况下建立的连接以及在网络上进行广播。WebSocket不支持这两种活动。
Socket.IO在GitHub上有近颗星,每周在npm上有约万次下载,是年值得