在 Node.js 中实现 WebSocket 服务器和客户端

阅读时长 5 min read

WebSocket 是一种协议,可以在 Web 应用程序中创建实时通信的连接。本文将介绍如何在 Node.js 中实现 WebSocket 服务器和客户端,并提供深入的学习和指导意义。

WebSocket 介绍

WebSocket 是一种双向通信协议,它可以在 Web 应用程序中创建实时通信的连接。它允许服务器主动向客户端推送数据,而不需要客户端发出请求。WebSocket 还提供了心跳包机制(Ping/Pong),以确保连接的持久性和可靠性。

实现 WebSocket 服务器

在 Node.js 中实现 WebSocket 服务器,需要使用一个 WebSocket 模块。这里我们使用 ws 模块来实现 WebSocket 服务器。

安装 ws 模块

使用 npm 安装 ws 模块:

创建 WebSocket 服务器

创建 WebSocket 服务器非常简单,只需几行代码即可完成:

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

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

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

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

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

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

上面的代码创建了一个 WebSocket 服务器,它将监听端口号为 8080 的连接请求。当一个客户端连接到服务器时,会触发 connection 事件。在这个事件中,我们可以处理客户端的消息和断开连接事件。在上面的代码中,我们打印了一些日志,并将客户端发送的消息原样返回给客户端。

测试 WebSocket 服务器

启动 WebSocket 服务器后,我们可以使用浏览器中的 WebSocket API 或 WebSocket 客户端测试工具来测试服务器。

浏览器测试

在浏览器中创建一个 WebSocket 连接:

这个代码片段在浏览器中创建了一个 WebSocket 连接,并在接收到服务器发送的消息时进行打印。

客户端测试

我们也可以使用 WebSocket 客户端测试工具来连接 WebSocket 服务器。比如使用 wscat

连接 WebSocket 服务器:

之后,我们就可以在命令行中发送和接收消息了。

实现 WebSocket 客户端

在 Node.js 中实现 WebSocket 客户端同样也非常简单。我们同样可以使用 ws 模块来实现 WebSocket 客户端。

创建 WebSocket 客户端

创建 WebSocket 客户端,我们需要向服务器发起连接请求。一旦连接建立,我们就可以发送和接收消息了。下面是一个简单的 WebSocket 客户端实现:

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

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

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

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

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

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

上面的代码片段创建了一个 WebSocket 客户端,它向 WebSocket 服务器发起连接请求,一旦连接建立,就会触发 open 事件。在该事件中,我们发送了一个消息给服务器。在 message 事件中,我们收到了从服务器发送的消息。在 close 事件中,我们打印了客户端关闭的信息。

测试 WebSocket 客户端

创建了 WebSocket 客户端之后,我们同样可以使用命令行(使用 wscat)或浏览器来测试客户端的实现。

小结

WebSocket 是一种双向通信协议,可以在 Web 应用程序中创建实时通信的连接。在 Node.js 中,我们可以使用 ws 模块来实现 WebSocket 服务器和客户端。实现 WebSocket 服务器和客户端非常简单,只需几行代码即可完成,但是它们提供了深入的学习和指导意义。我们可以使用浏览器或 WebSocket 客户端测试工具来测试服务器和客户端。

Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/67cffe3ae46428fe9ec683b3

Feed
back