如何在 Node.js 中使用 WebSocket?

阅读时长 6 分钟读完

WebSocket 是一种在 Web 应用程序中进行全双工通信的协议。与传统的 HTTP 请求-响应协议不同,WebSocket 允许客户端和服务器之间建立持久性的连接,从而实现实时数据的双向传输。

在前端开发中,WebSocket 已经得到广泛的应用。而在 Node.js 中,我们同样可以通过一些库来使用 WebSocket。本文将介绍如何在 Node.js 中使用 WebSocket。

安装 WebSocket 库

首先,我们需要安装 WebSocket 库。常用的 WebSocket 库有 wssocket.io 两种,我们可以根据不同的需求来选择具体的库。

安装 ws 库:

安装 socket.io 库:

使用 ws 库

建立 WebSocket 服务器

使用 ws 库建立 WebSocket 服务器非常简单。我们可以通过以下代码来建立一个简单的 WebSocket 服务器:

-- -------------------- ---- -------
----- --------- - --------------

----- ------ - --- ------------------ ----- ---- ---
 
----------------------- ------ -- -
  -------------------
  
  -------------------- ------- -- -
    --------------------------------
    -----------------------------
  ---
---

代码说明:

  • 第 1 行:引入 WebSocket 库。
  • 第 3 行:创建一个 WebSocket 服务器,监听端口号为 8080。
  • 第 5 行:当有客户端连接上来时,会触发 connection 事件。
  • 第 7-11 行:当收到客户端发来的消息时,会触发 message 事件,并发送一条回复。

建立 WebSocket 客户端

使用 ws 库建立 WebSocket 客户端同样非常简单。我们可以通过以下代码来建立一个简单的 WebSocket 客户端:

-- -------------------- ---- -------
----- --------- - --------------

----- ------ - --- ---------------------------------
 
------------- - -- -- -
  -------------------
  ------------------- -------------
--
 
---------------- - ------- -- -
  -------------------------------------
--

代码说明:

  • 第 1 行:引入 WebSocket 库。
  • 第 3 行:创建一个 WebSocket 客户端,连接到服务器地址为 ws://localhost:8080 的 WebSocket 服务器。
  • 第 5-8 行:当连接成功时,会触发 onopen 事件,并发送一条消息。
  • 第 10-12 行:当收到服务器发来的消息时,会触发 onmessage 事件,并输出收到的消息。

使用 socket.io 库

相较于 ws 库,使用 socket.io 库建立 WebSocket 服务器和客户端需要的代码量更少。我们可以通过以下代码来建立一个简单的 WebSocket 服务器和客户端:

-- -------------------- ---- -------
----- -------- - ---------------------
----- ---- - ----------------
 
----- ------ - ----------------------- ---- -- -
  -------------- ---------
---
------------------- -- -- -
  ------------------- -----------
---
 
----- -- - ---------------- -
  ----- -
    ------- ----
  -
---
 
------------------- ------ -- -
  -------------------
  
  -------------------- ------- -- -
    --------------------------------
    -----------------------------
  ---
---
-- -------------------- ---- -------
----- -------- - ----------------------------
 
----- ------ - --------------------------------
 
-------------------- -- -- -
  -------------------
  ------------------- -------------
---
 
-------------------- ------- -- -
  --------------------------------
---

代码说明:

  • 第 1 行:引入 socket.io 库。
  • 第 2 行:引入 http 库,用于创建 HTTP 服务器。
  • 第 4-8 行:创建一个 HTTP 服务器,并监听端口号为 8080。
  • 第 10 行:使用 socket.io 包装 HTTP 服务器,创建一个 WebSocket 服务器。
  • 第 14-18 行:当有客户端连接上来时,会触发 connection 事件。
  • 第 20-24 行:当收到客户端发来的消息时,会触发 message 事件,并发送一条回复。
  • 第 28 行:创建一个 WebSocket 客户端,连接到服务器地址为 ws://localhost:8080 的 WebSocket 服务器。
  • 第 30-33 行:当连接成功时,会触发 connect 事件,并发送一条消息。
  • 第 35-37 行:当收到服务器发来的消息时,会触发 message 事件,并输出收到的消息。

总结

本文介绍了在 Node.js 中如何使用 WebSocket。我们可以通过 ws 库或 socket.io 库来建立 WebSocket 服务器和客户端。使用 ws 库需要编写更多的代码,并且需要对 WebSocket 协议有更深入的了解;而使用 socket.io 库可以更快捷地建立 WebSocket 应用。无论使用哪种库,WebSocket 都可以帮助我们实现实时通信,提升 Web 应用的用户体验。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6488fc4f48841e989474cb23

纠错
反馈