如何使用 Node.js 实现 webSocket 通信

阅读时长 4 分钟读完

简介

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。 这意味着客户端和服务器可以通过简单而有效的方式进行双向通信,而无需使用轮询或其他复杂的技术。

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。它能够将 JavaScript 代码运行在服务器端,具有高效的 I/O 和事件驱动特性。

本文将介绍如何使用 Node.js 实现 webSocket 通信,通过实例代码来指导读者了解 webSocket 的基本概念和如何在 Node.js 中使用 webSocket 通信。

基础知识

在使用 Node.js 实现 webSocket 通信前,需要掌握一些基本概念。

  1. 协议:WebSocket 使用的是标准的 HTTP 协议进行握手,并且握手过程完毕后会使用自己额外的数据帧进行数据传输。
  2. 消息格式:WebSocket 的消息格式是帧,帧包含了操作码和负载数据两个部分。
  3. 操作码:WebSocket 定义了一个操作码表,大致是分为 0-7 共八种操作码。

使用 Node.js 实现 webSocket 通信

在 Node.js 中,使用 webSocket 进行通信可以通过第三方库 ws 来实现。ws 是一个快速和简单的 WebSocket 实现,用于 Node.js。

要使用 ws,需要首先安装它。可以使用下面的命令安装:

下面是一个简单的 ws 示例:

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

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

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

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

上面的代码中,我们首先引入了 WebSocket 类,然后使用 ws 创建了一个 WebSocket 服务器。在服务器被连接时,我们定义了 connection 事件的回调函数。在该回调函数中,我们监听来自客户端的 message 事件,并在控制台上输出接收到的消息。再使用 ws.send() 方法向客户端发送消息。

注意到上面的示例代码中,我们创建了一个 WebSocket 服务器 wss 的实例,指定了监听的端口 port:8080。另外,在客户端连接时,我们定义了一个包含 ws 参数的回调函数。这里的 ws 是表示和客户端进行通信的 WebSocket 实例。

下面是一个使用浏览器客户端与服务器进行通信的代码:

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

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

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

上面的代码使用 WebSocket 对象的 onopen 回调函数,并调用 send() 方法向服务器发送消息。另外,我们还使用了 onmessage 回调函数来监听从服务器接收到的消息,并在控制台输出该消息。

总结

本文介绍了如何使用 Node.js 实现 webSocket 通信,具备基本的 webSocket 知识后,使用第三方库 ws 写出简单的通信代码。在实际开发过程中,可以根据业务需求和具体场景进行扩展和优化。

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

纠错
反馈