在 Web 开发中,往往需要实时的消息推送,这时候 WebSockets 就发挥了很大的作用。Express.js 是 Node.js 常用的 Web 应用框架之一,可以快速开发以及管理 Web 应用程序,同时也支持 WebSockets 扩展。本文将介绍如何在 Express.js 应用程序中使用 WebSockets 广播消息。
WebSocket 简介
WebSocket 是一个为现代 Web 开发提供全双工、实时通讯的协议,它是 HTML5 标准的一部分,可以通过 JavaScript API 来实现。WebSocket 与传统的 HTTP 协议不同,其建立了一个长久的 TCP 连接,实现了双向通讯。相对于其他实现实时通讯的技术,如 XHR 和 Comet,WebSocket 更为高效、简洁、灵活,同时也具备更好的兼容性。
Express.js 中使用 WebSocket
在 Express.js 中使用 WebSocket,需要借助第三方库 ws
,该库是一个 Node.js WebSocket 实现,可以让我们在应用程序中快速使用 WebSocket。
首先,我们需要安装 ws
库:
npm install ws
然后,在 Express.js 应用程序中引入 ws
:
const app = require('express')(); const server = require('http').createServer(app); const WebSocket = require('ws');
接下来,我们创建 WebSocket 服务器:
const wss = new WebSocket.Server({ server });
在 ws
应用程序中,我们需要处理 connection
事件。下面的代码是一个 WebSocket 服务器,监听服务器上的消息,并将消息广播到所有连接的客户端:
-- -------------------- ---- ------- -------------------- ---- -- - -------------- --- ------ ------------ ---------------- --------- -- - --------------------- -------- ------------- ---------------------------- -- - -- ------------------ --- --------------- - --------------------- - --- --- ---------------- -- --- --------- ---
WebSocket 的 connection
事件会在客户端连接到服务器时被触发。该事件将传入一个 WebSocket 实例 ws
,可以注册事件来处理客户端发送的消息。
当服务器接收到新的消息时,可以通过 wss.clients
属性来获得连接的客户端列表,然后通过遍历列表,向每个客户端发送消息。
在客户端连接到服务器时,我们也可以向客户端发送欢迎消息。
示例代码
下面是一个完整的 Express.js 应用程序,使用 WebSocket 广播消息:
-- -------------------- ---- ------- ----- --- - --------------------- ----- ------ - ---------------------------------- ----- --------- - -------------- -- -- --------- --- ----- --- - --- ------------------ ------ --- -- ------ -------------------- ---- -- - -------------- --- ------ ------------ ---------------- --------- -- - --------------------- -------- ------------- ---------------------------- -- - -- ------------------ --- --------------- - --------------------- - --- --- ---------------- -- --- --------- --- -- ----- ------------------- -- -- - ------------------- --------- -- ------------------------ ---
总结
在 Express.js 应用程序中使用 WebSocket 广播消息是一种实时通讯的好方法,可以让应用程序更加高效、简洁、灵活。通过 ws
库可以轻松实现 WebSocket 功能。本文介绍了 WebSocket 的基本概念和使用,同时还提供了一个示例代码,可以帮助开发者轻松实现 WebSocket 广播消息。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6532250c7d4982a6eb4668b9