在 Express.js 中如何使用 WebSocket?

阅读时长 7 min read

在现代 web 应用中,实时数据交互已经成为了必不可少的一环。而 WebSocket 作为 HTML5 引入的标准,能够为实时数据交互提供强大的支持,因此得到了广泛的应用。在这篇文章中,我们将会讲解如何在 Express.js 中使用 WebSocket。

WebSocket 简介

WebSocket 是一种在单个 TCP 连接上进行全双工通信的应用层协议,允许客户端和服务器端进行实时数据交互。相比传统的 HTTP 请求-响应模式,WebSocket 更加高效和实时。WebSocket 的使用需要客户端和服务器端都支持,而且客户端和服务器端的接口要遵循一定的协议。

开始使用 WebSocket

在 Express.js 中使用 WebSocket 首先需要安装相应的包。常用的 WebSocket 包有 wssocket.io,本文使用 ws 作为演示。

在安装好之后,我们需要在 Express.js 中引入 ws 包,创建并监听 WebSocket 服务器。在实践中,WebSocket 服务器的创建往往需要在 Express 服务器启动后进行。

上述代码中,我们使用了 Express.js 创建了一个服务器,并将它监听在 3000 端口。然后,我们使用 ws 包创建了一个 WebSocket 服务器,将它与 Express.js 服务器进行了绑定。当有 WebSocket 连接时,服务器将会输出“WebSocket connection open”的消息。当有消息传来时,服务器会将其输出。最后,当 WebSocket 连接关闭时,服务器将会输出“WebSocket connection closed”的消息。

前端实现 WebSocket 连接

在前端实现 WebSocket 连接很简单,我们只需要调用 WebSocket 的构造函数即可。然后,我们可以监听 WebSocket 对象的事件,如 open、message 和 close。

上述代码中,我们使用了 ws://localhost:3000 地址进行 WebSocket 连接。当连接建立时,前端将会输出“WebSocket connection open”的消息。当服务器发来消息时,前端将会将其输出。最后,当 WebSocket 连接关闭时,前端将会输出“WebSocket connection closed”的消息。

WebSocket 应用示例

下面是一个简单的 WebSocket 应用示例。该应用通过 WebSocket 实现了类似聊天室的功能。

服务器端代码:

前端代码:

在该示例中,当一个 WebSocket 连接建立时,服务器将打印出“WebSocket connection open”的消息。当有消息传来时,服务器将会将其广播给所有客户端。当一个 WebSocket 连接关闭时,服务器将打印出“WebSocket connection closed”的消息。同时,在前端中,我们监听了表单 submit 事件,将消息以 JSON 格式发送给服务器。当从服务器收到消息时,我们将其渲染到聊天窗口中。

总结

在 Express.js 中使用 WebSocket 非常简单,我们只需要在服务器端监听 WebSocket 的连接,然后在前端中建立 WebSocket 连接即可。WebSocket 可以为实时数据交互提供强大的支持,是现代 web 应用中必不可少的一环。希望本文能够帮助读者更好地理解 WebSocket 的使用方法,并在实际开发中得到应用。

Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/64f453c7f6b2d6eab3d62cc6