如何通过 Express.js 实现 Websocket 实时通信

阅读时长 5 分钟读完

Websocket 是一种 HTML5 技术,它允许服务器推送数据给客户端,并提供了一种双向通信的方式。在现代的 Web 应用程序中,Websocket 已经成为了实现实时通信的首选方式。

Express.js 是一个流行的 Node.js Web 应用程序框架,它提供了一套完整的路由和中间件系统。在本文中,我们将介绍如何使用 Express.js 实现 Websocket 实时通信。

安装

在开始之前,我们需要确保已经安装了 node.js 和 npm。在命令行中执行以下命令,安装相关的 npm 包:

创建 Express.js 应用程序

在这里,我们将创建一个简单的 Express.js 应用程序。创建一个名为 app.js 的文件,并在其中添加以下代码:

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

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

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

这里,我们简单地创建了一个 Express 应用程序,在根路由下返回一个 HTML 文件。

创建 Websocket 服务器

为了创建 Websocket 服务器,我们需要使用 Socket.IO。在我们的项目目录中创建一个名为 server.js 的文件,并在其中添加以下代码:

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

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

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

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

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

这里,我们简单地创建了一个 Socket.IO Websocket 服务器,并在控制台打印出有用户连接和断开的消息。

连接 Websocket 客户端

现在,我们可以在客户端中连接到我们的 Websocket 服务器。在我们的 index.html 文件中添加以下代码:

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

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

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

这里,我们简单地在客户端中连接到我们的 Websocket 服务器,并在控制台打印出有连接和断开的消息。

发送消息

现在,我们可以发送消息从客户端到服务器,并从服务器到客户端。修改我们的 server.js 文件,使其接受客户端发来的消息,并向所有连接的客户端广播该消息。

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

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

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

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

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

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

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

这里,我们向客户端发送欢迎消息,并在每次接收到消息时,广播该消息给所有连接的客户端。

结论

使用 Express.js 和 Socket.IO,我们可以轻松地实现 Websocket 实时通信。在本文中,我们介绍了如何创建一个简单的 Express.js 应用程序和一个 Websocket 服务器,并向所有连接的客户端广播消息。使用这种技术,您可以创建强大的实时 Web 应用程序,包括聊天应用程序、实时协作工具和实时监控仪表板等。

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

纠错
反馈