Express.js 中使用 WebSocket 实现实时通信的完整教程

阅读时长 4 分钟读完

简介

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。相比传统的 HTTP 协议,它可以实现实时通信,因此在实时通信场景下使用较为广泛。Express.js 是一种基于 Node.js 的 Web 框架,它提供了一个方便的方式来构建 Web 应用程序。

本文将介绍如何在 Express.js 中使用 WebSocket,实现实时通信功能。

准备工作

在开始之前,请确保已经安装了 Node.js 和 Express.js。如果没有安装,可以在官网上下载并安装。

在本文中,我们将使用 ws 模块来实现 WebSocket 功能。可以使用以下命令来安装:

实现方法

1. 创建 WebSocket 服务器

首先,我们需要创建一个 WebSocket 服务器。在 Express.js 中,可以使用 ws 模块的 WebSocket.Server 类来创建。

以上代码将创建一个 WebSocket 服务器,监听 8080 端口。

2. 监听 WebSocket 连接

接下来,我们需要监听 WebSocket 连接。在 WebSocket.Server 实例上,可以使用 connection 事件来监听连接。

以上代码将在有 WebSocket 连接时输出一条日志。

3. 发送消息

我们可以使用 WebSocket 实例上的 send() 方法来发送消息。

以上代码将向客户端发送一条消息。在实际应用中,可以根据业务需求来发送不同的消息。

4. 接收消息

在客户端发送消息时,我们需要在服务器端监听消息。可以使用 message 事件来监听消息。

以上代码将在接收到消息时输出一条日志。

5. 关闭连接

在客户端关闭连接时,我们需要在服务器端监听关闭事件。可以使用 close 事件来监听关闭。

以上代码将在连接关闭时输出一条日志。

示例代码

以下是一个完整的示例代码,演示如何在 Express.js 中使用 WebSocket 实现实时通信功能。

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

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

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

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

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

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

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

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

在上述示例代码中,我们创建了一个 Express.js 应用程序,同时也创建了一个 WebSocket 服务器。当客户端连接到 WebSocket 服务器时,将发送一条消息,并监听客户端的消息和关闭事件。

总结

本文介绍了如何在 Express.js 中使用 WebSocket 实现实时通信功能。通过使用 ws 模块,我们可以轻松地创建 WebSocket 服务器,并实现消息的发送和接收。希望本文能够对大家有所帮助。

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

纠错
反馈