Node.js 中的 WebSocket 技术应用实例

阅读时长 5 分钟读完

WebSocket 是一项可以实现浏览器和服务器端双向通信的技术,而 Node.js 作为一种后端 JavaScript 运行环境,可以轻松地实现 WebSocket 技术,适用于实时通信等场景。

本文将介绍在 Node.js 中如何应用 WebSocket 技术,包括如何创建 WebSocket 服务器、如何使用 WebSocket API 和如何处理 WebSocket 事件。同时,也会给出实践操作的代码示例。

创建 WebSocket 服务器

Node.js 可以通过 ws 模块创建一个 WebSocket 服务器。首先,需要安装 ws 模块:

然后,可以使用以下代码创建并开启一个 WebSocket 服务器:

以上代码中,我们先引入了 ws 模块,然后通过 WebSocket.Server 构造函数创建一个 WebSocket 服务器实例,并设置监听的端口号为 8888。接着,我们通过 connection 事件监听客户端的连接请求,在客户端连接成功后输出一条信息。

使用 WebSocket API

在 Node.js 中使用 WebSocket API,可以调用 WebSocket 构造函数创建一个新的 WebSocket 对象。以下示例代码演示了如何使用 WebSocket 连接到上面创建的 WebSocket 服务器:

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

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

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

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

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

以上代码中,我们通过 WebSocket 构造函数创建了一个 WebSocket 实例并连接到我们之前创建的 WebSocket 服务器。连接成功后,客户端发送了一条消息 Hello, server! 到服务端,并通过 message 事件监听接收到服务端返回的消息。同时,在建立连接时也可以监听 openclose 等事件。

处理 WebSocket 事件

WebSocket 事件处理与普通的事件处理类似,可以监听各种事件来处理事件的回调函数。以下是一些常见的 WebSocket 事件及其对应的回调函数:

  • connection: 客户端连接成功后触发的回调函数。
  • message: 接收到客户端消息时触发的回调函数,可以通过 event.data 获取客户端发送的消息内容。
  • error: WebSocket 发生错误时触发的回调函数,可以通过 event.error 获取错误信息。
  • close: WebSocket 连接关闭时触发的回调函数,可以通过 event.codeevent.reason 获取关闭的原因和代码。

使用以上事件可以轻松地处理 WebSocket 的各类事件,并实现特定的业务逻辑。以下示例代码演示了如何处理以上事件:

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

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

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

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

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

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

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

---

以上代码中,我们监听了客户端的 messageerrorclose 等事件,其中 message 事件会在接收到客户端消息后触发,并向客户端发送一条 Received: ${data} 的消息。

总结

本文介绍了在 Node.js 中如何应用 WebSocket 技术,包括如何创建 WebSocket 服务器、如何使用 WebSocket API 和如何处理 WebSocket 事件。WebSocket 技术的应用范围广泛,适用于实时通信、聊天室、游戏等场景,希望本文对读者们学习 WebSocket 技术有所帮助。完整示例代码可参考以下代码:

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

纠错
反馈