WebSocket 协议是一种基于 TCP 协议的双向通信协议,与 HTTP 相比,它更加轻量级、更快速,也更加灵活。Express.js 是一个非常流行的 Node.js 服务器框架,它可以用来构建 Web 应用程序、API 和服务。本文将探讨如何在 Express.js 中使用 WebSocket。
在 Express.js 中安装 WebSocket
Express.js 并不提供对 WebSocket 的原生支持,我们需要安装一个 WebSocket 库。一个流行的 WebSocket 库是 ws
,它提供了 WebSocket API 的实现,可以轻松地与 Express.js 集成。可以使用 npm 包管理器安装:
--- ------- --
在 Express.js 中启用 WebSocket
要在 Express.js 中启用 WebSocket,我们需要在服务器上创建一个 WebSocket
服务器实例,并将其连接到 Express.js 应用程序。这可以通过以下代码完成:
----- ------- - ------------------- ----- --------- - -------------- ----- --- - ---------- -- -- --------- ----- ----- --- - --- ------------------ ----- ---- --- -- - --------- ------ ---------- ---- ----------- ---- ---- -- - -- ----------- --- -- -- ---------- ---- ---------------- -- -- - ----------------------- ----------- ---
在上面的代码中,我们通过创建一个 WebSocket.Server
实例来启动 WebSocket 服务器,然后使用 app.ws
方法将服务器连接到 Express.js 应用程序。第一个参数是 URL 路径模式,它指定应该与 WebSocket 服务器实例连接的 Express.js 路由。在本例中,'/'
表示默认路径,将匹配所有 WebSocket 连接。
在 Express.js 中接收和发送 WebSocket 消息
一旦我们启用了 WebSocket,就可以接收和发送消息了。当有客户端通过 WebSocket 连接到 Express.js 服务器时,我们可以发送欢迎消息给客户端,并记录其连接。WebSocket 连接是一个双向通信通道,客户端和服务器可以互相发送消息。
----- ------- - ------------------- ----- --------- - -------------- ----- --- - ---------- ----- --- - --- ------------------ ----- ---- --- ----------- ---- ---- -- - ----------------------- -- ---------- ------------- --------- ------- ---------------- ----- -- - ------------------------------- --- --- ---------------- -- -- - ----------------------- ------------ ---
在上面的代码中,我们使用 ws.send
方法向客户端发送欢迎消息,然后使用 ws.on('message', ...)
方法接收客户端发送的消息。如果客户端发送了消息,我们将在服务器控制台上记录消息内容。
在 Express.js 中广播 WebSocket 消息
在 WebSocket 连接建立后,我们可以使用 WebSocket 服务器实例的 wss.clients
属性获取所有已连接的客户端。通过对每个客户端调用 client.send
方法,我们可以将同一消息发送给所有客户端,从而实现消息广播。
----- ------- - ------------------- ----- --------- - -------------- ----- --- - ---------- ----- --- - --- ------------------ ----- ---- --- ----------- ---- ---- -- - ----------------------- ------------- --------- ------- ---------------- ----- -- - -------------------------------- --------------- --- --- -------- -------------- - ---------------------------- -- - -- ------------------ --- --------------- - ---------------------------- - --- - ---------------- -- -- - ----------------------- ------------ ---
在上面的代码中,我们定义了一个 broadcast
函数,该函数迭代所有已连接的客户端,并仅对状态为 WebSocket.OPEN
的客户端调用 client.send
,以将消息广播给所有客户端。
结论
本文介绍了如何在 Express.js 中使用 WebSocket。我们安装了 ws
库并在 Express.js 服务器上创建 WebSocket 服务器实例。我们使用 app.ws
方法将服务器连接到 Express.js 应用程序,并使用 ws.send
方法接收和发送消息。同时,我们还学习了如何广播一条消息,并将其发送给所有客户端。WebSocket 是一种强大的双向通信协议,在构建实时 Web 应用程序时使用它。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/672062f52e7021665e020136