npm 包 @small-tech/express-ws 使用教程

阅读时长 6 分钟读完

在前端开发中,我们经常需要使用 WebSocket 进行双向通信,而 Express.js 是一款非常受欢迎的 Node.js Web 应用程序框架。@small-tech/express-ws 是一个基于 Express.js 的 WebSocket 服务器插件,它可以帮助我们快速搭建 WebSocket 服务器。

安装

我们可以通过 npm 安装 @small-tech/express-ws 这个包:

使用

使用 @small-tech/express-ws 需要两部分组成:标准的 Express.js 应用程序和 ws WebSocket 实例。首先我们来创建一个 Express.js 应用程序:

然后,我们需要创建一个 WebSocket 实例。@small-tech/express-ws 已经为我们封装了这个过程,我们可以直接使用 app.ws() 方法创建 WebSocket 实例:

在上面的例子中,我们创建了一个 WebSocket 实例,并在根路径 / 上监听 WebSocket 请求。当有客户端连接时,我们可以在回调函数中处理 WebSocket 的各种事件和逻辑。

ws 参数是一个 WebSocket 实例,req 参数是一个 HTTP 请求对象。

发送消息

要在服务器端向客户端发送消息,我们可以使用 ws.send() 方法。例如,我们可以在处理 WebSocket 请求的回调函数中发送一个欢迎消息:

接收消息

要在服务器端接收客户端发送的消息,我们需要监听 message 事件。例如,我们可以在处理 WebSocket 请求的回调函数中监听 message 事件并输出客户端发送的消息:

广播消息

要在服务器端向所有客户端广播消息,我们需要保存所有连接到服务器的 WebSocket 实例,并在接收到消息后循环发送给所有客户端。例如,我们可以创建一个数组保存所有 WebSocket 实例,并在接收到客户端发送的消息时广播给所有客户端:

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

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

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

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

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

关闭连接

要在服务器端关闭 WebSocket 连接,我们可以调用 ws.close() 方法。例如,我们可以在处理 WebSocket 请求的回调函数中监听 close 事件并输出客户端断开连接的消息:

示例代码

以下是一个完整的 @small-tech/express-ws 示例代码,包括发送消息、接收消息、广播消息和关闭连接:

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

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

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

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

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

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

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

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

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

总结

@small-tech/express-ws 是一个方便、快捷的 WebSocket 服务器插件。使用它,我们可以快速搭建 WebSocket 服务器,并且轻松处理 WebSocket 的各种事件和逻辑。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/small-tech-express-ws