天天看點

2022 年用于 Node.js 的優秀 WebSocket 庫

作者:張張

在這篇文章中,我們将讨論2022年你應該考慮的八個Node.js WebSocket庫。

  • SockJS[1]
  • ws[2]
  • Socket.IO[3]
  • Faye WebSocket[4]
  • SocketCluster[5]
  • Sockette[6]
  • Feathers[7]

要開始使用這些庫中的任何一個,您需要在本地計算機上安裝 npm 和 Node.js。在開始之前,讓我們介紹一下 WebSockets 的一些重要背景。

WebSockets 是如何工作的?

傳統上,用戶端和伺服器通過遵循請求/響應周期進行通信。但是,WebSockets 允許您以非标準方式在用戶端和伺服器之間進行通信。

WebSockets 在伺服器和用戶端之間提供了一個開放的連接配接,允許在伺服器和用戶端之間進行簡單、即時的雙向通信,而無需輪詢伺服器。WebSockets 對于建構實時應用程式特别有用,例如實時消息傳遞、實時流媒體、推送通知、跟蹤、财務更新和體育更新等等。

現在我們知道了 WebSockets 的工作原理,讓我們來看看一些 Node.js 庫,您可以使用它們來更輕松地使用 WebSockets 進行開發。

SockJS

SockJS是一個JavaScript庫,它以類似于本地WebSockets API的方式提供用戶端和伺服器之間的通信。SockJS[8]的功能與sockjs-node[9]形式的伺服器對應,以及SockJS-client[10],一個JavaScript用戶端庫。

在撰寫本文時,SockJS 在 GitHub 上有超過 7000 顆星,在 npm 上每周下載下傳近 700 萬次,可以說是 Node.js 的最佳 WebSocket 庫之一。SockJS 遵循 HTML5 WebSocket API 的規則,提供類似于 WebSocket 的對象。

ws

ws 在 GitHub 上擁有超過 17500 顆星,在 npm 上每周下載下傳量約為 3500 萬次,是可用的最受歡迎的 Node.js WebSocket 庫之一。

ws 是一個快速、易于使用、文檔齊全且經過全面測試的 WebSocket 用戶端和伺服器實作,幾乎支援所有浏覽器。是以,ws 是許多開發人員最喜歡的首選庫,這意味着它的社群是活躍且強大的。

安裝 ws 非常簡單,可以使用以下指令之一完成:

複制npm install ws
//
npm i ws
1.2.3.           

要開始使用 ws WebSocket 庫,請檢視文檔[11]。

複制npm install --save-optional bufferutil
1.           

上述指令允許你有效地執行屏蔽和解除屏蔽WebSocket幀的資料有效載荷等操作。

複制npm install --save-optional utf-8-validate
1.           

要有效地檢查消息是否包含有效的 UTF-8,請運作上述指令。

Socket.IO

2022 年用于 Node.js 的優秀 WebSocket 庫

Socket.IO[12] 建立于 2010 年,是一個流行的 WebSocket 庫,被 Trello 和 Microsoft 等多家大公司使用。Socket.IO 是可靠的,提供負載平衡、支援二進制流、處理代理等功能。

然而,Socket.IO 的主要用途是促進浏覽器和伺服器之間的實時、雙向和基于事件的通信。與 ws 一樣,Socket.IO 有一個 Node.js 伺服器和一個 JavaScript 用戶端庫。

此外,Socket.IO還包括一些功能,如支援在有代理或負載均衡器的情況下建立的連接配接以及在網絡上進行廣播。WebSocket不支援這兩種活動。

Socket.IO在GitHub上有近55000顆星,每周在npm上有約300萬次下載下傳,是2022年值得關注的一個好庫。文檔非常簡單明了,這意味着即使是沒有經驗的開發者也應該能夠在很少的時間内上手。

Faye WebSocket

Faye WebSocket[13] 是從 Faye 項目中提取出來的,它是一個多用途的 WebSocket,它可以很容易地在 Node.js 應用程式中指令預先存在的 WebSocket 連接配接。

Faye WebSocket 僅提供标準的 WebSocket API 和在 Node.js 中建構 WebSocket 用戶端和伺服器所需的類。它不提供伺服器本身或提供任何其他抽象。

要安裝Faye WebSocket,請運作 npm install faye-WebSocket。Faye項目的README部分提供了入門的必要文檔。

SocketCluster

2022 年用于 Node.js 的優秀 WebSocket 庫

​https://socketcluster.io/​​

SocketCluster[14]是一個高度可擴充的架構和實時的HTTP伺服器引擎,使你能夠一次性使用所有可用的CPU核心來建構多程序的實時伺服器。有了SocketCluster,後端避免了将Node.js伺服器作為單線程運作,工作更有效率,并保持彈性。

SocketCluster架構支援用戶端-伺服器和通過pub/sub通道的群組通信。它使用區域網路(LAN)來連接配接叢集的元件。SocketCluster 經過優化,可以輕松地從故障或斷開連接配接中恢複,并且不會丢失資料。

在撰寫本文時,SocketCluster在GitHub上有近6千顆星,在npm上每周有7千次下載下傳。

Sockette

Sockette[15] 是一個 WebSocket 包裝器,它允許您重用執行個體,而無需多次聲明所有事件偵聽器。Sockette 是一個非常輕量級的庫,根據 GitHub 頁面大約隻有 367 個位元組。如果連接配接丢失,Sockette 會自動重新連接配接。

考慮到 Sockette 是一個小工具,最好在初始化的時候聲明所有的事件監聽器。要安裝并開始使用 Sockette,請運作以下指令:

複制npm install -- save sockette
1.           

在撰寫本文時,Sockette 在 GitHub 上大約有 2k 顆星,在 npm 上每周下載下傳量為 9k。該文檔是一個很好的資源。

Feathers

2022 年用于 Node.js 的優秀 WebSocket 庫

Feathers[16] 架構使用 Socket.IO 子產品,以便您實時接收和提供更新。它還使您可以通過套接字、靈活的插件以及 RESTful API 和資源來控制您的資料。

Feathers 提供了自動化和控制的終極組合。使用 Feathers,您可以完全控制 API 的行為方式,同時仍然受益于提供的工具。

在撰寫本文時,該項目在GitHub上有近14000顆星,在npm上每周有26000次下載下傳。Feathers還包括一個優秀的文檔,并以其輕量級和易于與不同的資料庫內建而聞名。

要安裝 Feathers.js 庫,請運作以下指令:

複制npm install -g @feathersjs/cli
1.           

原文:https://blog.logrocket.com/top-websocket-libraries-nodejs-2022/

作者:Oyinkansola Awosan

來源: 前端全棧開發者