Node.js 和 Express.js 中如何使用 WebSocket

阅读时长 5 分钟读完

在开发 Web 应用程序时,有时需要一种实时通信的方式。WebSocket 是一种在客户端和服务器之间建立持久连接的技术,它允许双向通信,使得服务器可以主动推送数据给客户端而不需要客户端发出请求。

Node.js 是一个以 JavaScript 编写的服务器端平台,它允许我们使用单线程的事件驱动模型来构建高性能、可伸缩的网络应用程序。Express.js 是基于 Node.js 的流行 Web 框架之一,它提供了许多功能来简化 Web 应用程序的开发。

在本文中,我们将讨论如何在 Node.js 和 Express.js 中使用 WebSocket 进行实时通信。

安装 WebSocket 库

我们可以使用 ws 库在 Node.js 环境下使用 WebSocket。要安装该库,请在终端中输入以下命令:

创建 WebSocket 服务器

在本节中,我们将创建一个 WebSocket 服务器并处理客户端连接。 首先,我们需要启动一个 Node.js 服务器:

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

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

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

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

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

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

上述代码首先创建一个 Express.js 应用程序实例,并启动一个 Node.js 服务器。然后,我们使用 ws 库创建一个 WebSocket 服务器实例,将其与 Node.js 服务器绑定在一起。

当客户端连接到 WebSocket 服务器时,connection 事件会被触发。我们可以在该事件中监听客户端发送的消息,并将其广播给所有连接的客户端。最后,我们还需要在客户端断开连接时做出响应。

创建 WebSocket 客户端

如果要与上面创建的 WebSocket 服务器进行通信,我们需要为其创建一个客户端。 在下面的示例中,我们使用 HTML5 中的 WebSocket API 来创建客户端:

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

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

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

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

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

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

上述代码实现了一个简单的聊天应用程序。当用户在输入框中输入一条消息并按下“发送”按钮时,该消息将会通过 WebSocket 发送到服务器,并广播给所有连接的客户端。

总结

在本文中,我们学习了如何在 Node.js 和 Express.js 中使用 WebSocket 进行实时通信。我们创建了一个 WebSocket 服务器,并处理了客户端连接、消息和断开连接事件。我们还创建了一个简单的聊天应用程序,并使用 HTML5 中的 WebSocket API 创建了客户端。希望这篇文章对你

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

纠错
反馈