引言
现代 Web 应用通常需要在实时或接近实时的方式下推送(或传输)消息或数据。WebSocket 技术被广泛应用于这种情况下,它提供了一种全双工且低延迟的通信方式。本文将向你介绍如何在 Express.js 中使用 WebSocket 实现推送功能。
什么是 WebSocket
WebSocket 协议是 HTML5 标准化组织(W3C)提出的一种网络协议。它允许双向通信,使用了与 HTTP 不同的协议标识符(ws 或 wss)。WebSocket 协议的套接字可以维持在浏览器和服务器之间的长连接,以便实现实时通信。与传统的 HTTP 请求/响应模型不同,WebSocket 允许服务器异步地将数据推送到客户端。
实现步骤
步骤 1: 安装 WebSocket 库
首先,我们需要为我们的应用程序引入 WebSocket 服务器库,可以使用以下命令在您的 Express.js 项目中安装 ws
库:
npm install ws --save
步骤 2: 创建 WebSocket 服务器
在 Express.js 应用程序中,我们需要创建一个 WebSocket 服务器。可以使用以下代码创建:
const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 8080 });
步骤 3: 监听连接请求
在 WebSocket 服务器中,客户端会通过向服务器端发出连接请求来建立连接。我们需要在服务器端监听此请求,并根据需要采取必要的操作。可以使用以下事件监听器处理:
wss.on('connection', function connection(ws, req) { console.log('client connected'); ws.send('Connected successfully'); });
此代码将在 WebSocket 服务器接受一个新连接时执行。
步骤 4: 推送消息
我们可以使用 WebSocket 服务器与客户端进行双向通信。可以使用以下代码来完成向客户机发送消息:
wss.clients.forEach(function each(client) { if (client.readyState === WebSocket.OPEN) { client.send('Broadcast message'); } });
示例代码
您可以使用以下代码作为 WebSocket 服务器的示例代码,并在本地运行它:
-- -------------------- ---- ------- ----- --------- - -------------- ----- --- - --- ------------------ ----- ---- --- -------------------- -------- -------------- ---- - ------------------- ------------ ------------------ --------------- ---------------- -------- -------------- - ------------------ ----------------- -- - ---- - ----- --- -------------- -------- ------- - ------------------- --------------- --- --- -- ---- --------- -------- -- --- ------- -- ------- --------- -------------------- --------- - ---------------------------- ------------ - -- ------------------ --- --------------- - ---------------------- ---------- - --- -- ------
结论
在本文中,我们学习了如何在 Express.js 中使用 WebSocket 实现推送功能。我们讨论了 WebSocket 的基本概念以及实现 WebSocket 服务器的步骤,并提供了示例代码。WebSocket 成为越来越多的 Web 应用程序的重要技术之一,我们写作这样的技术文章能够帮助新手更多地了解诸如 WebSocket 这样的技术,有助于项目的建立。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670b687fd91dce0dc88a3aa6