Express.js 中 WebSocket 的使用指南

阅读时长 4 分钟读完

随着现代 Web 应用程序的复杂化和实时性要求的增加,WebSocket 在 Web 应用程序中的使用已经变得越来越普遍。WebSocket 是一种在浏览器和服务器之间建立全双工通信的技术,它可以通过单个 TCP 连接实现实时更新和传输数据。在本文中,我们将介绍如何在 Express.js 中使用 WebSocket。

WebSocket 的基本概念

WebSocket 是一个基于事件驱动的协议,可以在客户端和服务器之间进行双向通信。WebSocket 协议在建立连接时使用 HTTP 协议,握手完成后在同一个 TCP 连接上进行通信。WebSocket 连接是全双工的,这意味着服务器和客户端可以同时发送和接收消息。

在 JavaScript 中,我们可以使用 WebSocket API 来创建 WebSocket 连接。例如,以下代码将创建一个连接到 ws://localhost:8080 的 WebSocket:

一旦建立连接,我们就可以通过监听 message 事件获取服务器发送的消息:

当我们想要向服务器发送消息时,我们可以使用 send 方法:

在 Express.js 中使用 WebSocket

虽然 WebSocket 的 API 可以在浏览器中使用,但在服务器端实现 WebSocket 连接需要使用一些不同的技术。幸运的是,有一些现成的解决方案可以轻松地将 WebSocket 添加到 Express.js 中。

在 Express.js 中,我们可以使用 express-ws 中间件来添加 WebSocket 功能。首先,我们需要安装 express-ws

接下来,在我们的 Express.js 应用程序中添加中间件:

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

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

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

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

在上面的代码中,我们使用了 app.ws 方法来定义 WebSocket 端点。ws 回调接受两个参数: ws 对象表示 WebSocket 连接,req 对象是 ws 对象的请求实例。我们可以使用 ws 对象的 on 方法来监听 WebSocket 事件,例如 message 事件。当收到消息时,我们可以使用 ws.send 方法向客户端发送消息。

现在,我们已经创建了一个 WebSocket 服务器并开始监听来自客户端的连接请求。让我们看一下如何在客户端中连接 WebSocket 服务器和发送和接收消息。

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

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

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

在上面的代码中,我们使用 WebSocket API 创建了一个 WebSocket 连接,然后监听 open 事件来检测连接是否已建立。当连接已建立时,我们可以使用 send 方法向服务端发送消息来验证连接是否工作正常。然后,我们监听 message 事件以获取从服务器发送的消息。

总结

WebSocket 提供了一个灵活而强大的方法来实现实时网络通信。有了 express-ws 中间件,我们可以轻松地在 Express.js 应用程序中添加 WebSocket 功能。在本文中,我们介绍了如何在 Express.js 中使用 WebSocket,包括建立 WebSocket 连接和发送和接收消息的基本操作。希望这篇文章能够帮助您更好地理解和使用 WebSocket。

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

纠错
反馈