npm 包 `ws` 使用教程

阅读时长 4 分钟读完

介绍

ws 是一个基于 Node.js 的 WebSocket 实现,它提供了一种简单的方式来在客户端和服务器之间进行实时通信。ws 支持二进制数据、ping/pong 心跳以及拆分和组合消息等特性。

在本文中,我们将详细介绍如何使用 ws 进行前端开发,并给出相关示例代码以方便学习和理解。

安装

ws 是一个 npm 模块,因此你需要在项目中安装它。你可以使用以下命令安装:

创建 WebSocket 服务器

要创建一个 WebSocket 服务器,你需要使用 Node.js 内置的 http 模块并结合 ws 模块来完成。下面是一个示例代码:

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

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

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

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

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

在上面的代码中,我们创建了一个 http 服务器并使用 WebSocket.Server 类创建了一个 WebSocket 服务器。当客户端连接成功后,服务器会输出一句提示语,并监听客户端发送的消息并回复相同的消息。

创建 WebSocket 客户端

要创建一个 WebSocket 客户端,你可以使用浏览器内置的 WebSocket 类。下面是一个示例代码:

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

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

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

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

在上面的代码中,我们创建了一个 WebSocket 实例并连接到了之前创建的 WebSocket 服务器。当连接成功后,客户端会发送一条消息并输出一句提示语,然后监听服务器发送的消息并输出消息内容。当连接关闭时,客户端会输出一句提示语。

发送和接收二进制数据

ws 支持发送和接收二进制数据。你可以使用 ArrayBufferBuffer 对象来存储和处理二进制数据。下面是一个示例代码:

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

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

在上面的代码中,我们创建了一个 Buffer 对象并发送了一个二进制数据。当客户端接收到消息时,它会检查消息类型并输出相应的内容。

心跳检测

ws 支持 ping/pong 心跳检测,通过发送心跳包可以帮助你确保连接的稳定性和可靠性。下面是一个示例代码:

在上面的代码中,我们使用 _socket 属性访问底层的 TCP 套接字,并设置了心跳检测的相关参数。

拆分和组合消息

ws 支持拆分和组合消息,这意味着你可以将一个大型的消息拆分为多个小消息发送

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

纠错
反馈