使用 socket.io 和 express 创建 Node.js 服务器

在现代 Web 应用程序中,实时通信已成为普遍需求。而 socket.io 是一个流行的实现方式,它提供了一个简单的 API,可以在客户端和服务器之间实现双向通信。本文将介绍如何使用 socket.io 和 express 创建一个 Node.js 服务器。

安装依赖

首先,我们需要安装必要的依赖。在终端中运行以下命令:

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

创建服务器

接下来,我们将创建一个基本的 express 应用程序,并在其中添加 socket.io。在 app.js 文件中添加以下代码:

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

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

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

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

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

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

在这个例子中,我们首先创建了一个 express 应用程序,并将其绑定到一个 HTTP 服务器上。然后,我们创建了一个 socket.io 实例,并将其绑定到 HTTP 服务器上。接下来,我们指定一个静态文件夹,这样客户端就可以访问其中的文件。最后,我们定义了一个路由,将首页发送给客户端。在 io.on('connection', ...) 中,我们监听客户端连接事件,并在控制台中输出一条消息。在 socket.on('disconnect', ...) 中,我们监听客户端断开连接事件,并在控制台中输出一条消息。最后,我们将服务器绑定到端口 3000 上,并在控制台中输出一条消息。

客户端代码

接下来,我们需要在客户端中添加 socket.io。在 index.html 文件中添加以下代码:

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

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

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

在这个例子中,我们首先引入了 socket.io 的客户端库。然后,我们创建了一个 socket.io 实例,并监听连接事件和断开连接事件。在 socket.on('connect', ...) 中,我们监听连接事件,并在控制台中输出一条消息。在 socket.on('disconnect', ...) 中,我们监听断开连接事件,并在控制台中输出一条消息。

发送消息

现在,我们已经成功地建立了一个基本的 socket.io 连接。接下来,我们将学习如何在客户端和服务器之间发送消息。在 app.js 文件中添加以下代码:

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

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

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

在这个例子中,我们添加了一个名为 chat message 的事件,并在控制台中输出接收到的消息。然后,我们使用 io.emit() 方法将消息发送给所有连接的客户端。

index.html 文件中添加以下代码:

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

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

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

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

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

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

在这个例子中,我们添加了一个表单,允许用户输入消息并发送给服务器。我们还添加了一个 <ul> 元素,用于显示所有接收到的消息。在 chatForm.addEventListener('submit', ...) 中,我们监听表单提交事件,并使用 socket.emit() 方法将消息发送给服务器。在 socket.on('chat message', ...) 中,我们监听服务器发送的消息,并将其添加到消息列表中。

结论

使用 socket.io 和 express 创建一个 Node.js 服务器是非常简单的。在本文中,我们学习了如何建立基本的连接,并在客户端和服务器之间发送消息。我们还学习了如何在客户端中显示接收到的消息。希望本文对您有所帮助,让您能够更好地了解 socket.io 和 express。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67334ef90bc820c58241a685