Node.js 中使用 WebSocket 实现实时通讯

阅读时长 6 分钟读完

随着 Web 应用的日益普及,实时通讯的需求也越来越大,而传统的 HTTP 协议并不擅长实时通讯。WebSocket 技术的出现,让实时通讯变得更加容易和高效。本文将介绍如何在 Node.js 中使用 WebSocket 实现实时通讯。

WebSocket 简介

WebSocket 是一种基于 TCP 协议的全双工通信协议,它提供了一个持久化的连接,客户端和服务端可以通过该连接实现双向通讯。与 HTTP 协议不同的是,WebSocket 协议只需要一次握手,就可以一直保持连接状态,双方可以直接发送数据,无论是文本还是二进制数据。

安装 WebSocket 库

在 Node.js 中,可以通过 ws 库来实现 WebSocket 功能。首先需要安装该库,可以使用 npm 命令进行安装:

创建 WebSocket 服务器

在 Node.js 中,可以使用 ws 库来创建 WebSocket 服务器。下面的代码演示了如何创建一个 WebSocket 服务器,并监听客户端连接:

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

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

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

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

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

该代码创建了一个 WebSocket 服务器,并监听客户端连接。当有客户端连接时,会输出提示信息,并监听客户端发来的消息。当客户端关闭连接时,会输出提示信息。

在客户端的 JavaScript 代码中,可以使用原生的 WebSocket 对象来连接服务器,并发送和接收消息。下面的代码演示了如何连接服务器,并发送和接收消息:

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

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

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

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

该代码创建了一个 WebSocket 对象,并连接到服务器。当连接成功时,会输出提示信息,并发送一条消息到服务器。当收到服务器发来的消息时,会输出收到的消息。当连接关闭时,会输出提示信息。

使用 WebSocket 实现实时通讯

在实际应用中,WebSocket 可以用于实现各种类型的实时通讯,比如聊天室、在线游戏、股票行情等。下面的代码演示了如何使用 WebSocket 实现一个简单的聊天室:

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

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

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

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

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

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

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

该代码创建了一个 WebSocket 服务器,并实现了一个简单的聊天室功能。当有客户端连接时,会输出提示信息,并将该客户端添加到客户端列表中。当有客户端发来消息时,会将消息广播给所有客户端。当客户端关闭连接时,会输出提示信息,并将该客户端从客户端列表中删除。

在客户端的 JavaScript 代码中,可以使用原生的 WebSocket 对象来连接服务器,并发送和接收消息。下面的代码演示了如何连接服务器,并发送和接收消息:

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

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

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

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

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

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

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

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

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

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

该代码创建了一个 WebSocket 对象,并连接到服务器。当连接成功时,会输出提示信息,并发送一条消息到服务器。当收到服务器发来的消息时,会输出收到的消息。当连接关闭时,会输出提示信息。该代码还实现了一个表单,当用户提交表单时,会将用户输入的消息发送给服务器,并显示在页面上。

总结

本文介绍了如何在 Node.js 中使用 WebSocket 实现实时通讯。使用 WebSocket 可以轻松实现各种类型的实时通讯,具有广泛的应用价值。本文提供了示例代码,供读者参考和学习。

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

纠错
反馈