Express.js 中使用 WebSocket

在构建实时应用程序时,WebSocket 已成为前端和后端之间实现双向通信的协议的首选选择。通过使用 WebSocket,您可以轻松地构建实时聊天应用程序,多人游戏,实时交易平台等。在本文中,我们将探讨如何在 Express.js 中使用 WebSocket。

WebSocket 是什么?

WebSocket 是一种协议,该协议使浏览器和服务器之间可以进行双向通信而无需不断地请求数据。它是一个标准化的网络协议,具有在浏览器和服务器之间建立持久连接的能力。

Express.js 中的 WebSocket

Express.js 是一个流行的 Node.js 框架,因其强大的 Web 应用程序支持而受到赞誉。尽管它通常用于创建基于 HTTP 的 REST API,但 Express.js 也支持 WebSocket 因其使用Node.js。WebSocket 在 Express.js 中的实现需要两个库:

  1. ws 用于 WebSocket 服务器实现。
  2. ws-client 用于 WebSocket 客户端实现。

在 Express.js 中实现 WebScokets 时,您需要添加服务器代码和客户端代码。

服务器代码

在 Express.js 中使用 WebSocket,在 express-ws 库的帮助下可以轻松地实现。该库允许将 WebSocket 附加到 Express.js 应用程序提供的相同 Web 服务的路由上。以下是通过该库创建 WebSocket 服务器的示例代码:

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

在这个示例中,我们将 WebSocket 服务器附加到 Express.js 应用程序上,并将其设置为 /echo 的路由。收到来自客户端的消息后,服务器将消息发送回客户端。

客户端代码

客户端代码可以为特定功能构建或将其存储在通用库中以供将来使用。以下是一个实现 WebSocket 客户端功能的示例代码:

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

在这个示例中,我们创建了一个 WebSocket 客户端,连接到我们刚刚创建的 /echo WebSocket 服务器。一旦与服务器建立了连接,我们通过 onopen 回调函数打印确认消息。

当接收来自服务器的消息时,我们使用 onmessage 回调函数打印消息。

如果连接被合法地关闭,我们会通过 onclose 回调函数打印关闭消息。

如果出现任何错误,我们会在 onerror 回调函数中打印错误消息。

结论

本文展示了如何在 Express.js 中使用 WebSocket 创建实时 Web 应用程序。WebSocket 使得构建实时应用程序变得更加简单,因此在构建实时应用程序时,请考虑使用 WebSocket。

Express.js 与 WebSocket 集成非常简单,是我们推荐的框架之一。您还可以使用其他框架,如 Socket.IO 和 SockJS 等,这些框架稍微抽象了一些 WebSocket 的细节,提供了更高级别的 API。

最后,要快乐编码!

参考资源

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67305271eedcc8a97c919e7c