什么是 WebSocket
WebSocket 是一种基于网络套接字的 TCP 协议扩展,用于实现双向通信。它能够在浏览器和服务器之间创建持久的连接,并在两者之间传递数据。相对于传统的 HTTP 协议,WebSocket 的优点在于它可以实现实时数据的传输。
在 Express.js 中使用 WebSocket
WebSocket 这种双向通信协议在当今的 Web 开发中普遍应用,因此,Express.js 提供了一个简单且易于使用的 WebSocket 库:ws。我们可以使用这个库来在 Express.js 应用程序中实现 WebSocket。
首先,我们需要安装 ws 库,你可以通过 npm 安装它:
npm install ws --save
接下来,在 Express.js 应用程序中,我们需要创建一个 WebSocket 服务器来处理 WebSocket 连接。这可以通过以下代码实现:
const express = require('express'); const http = require('http'); const WebSocket = require('ws'); const app = express(); const server = http.createServer(app); const wss = new WebSocket.Server({ server }); wss.on('connection', (ws, req) => { console.log('WebSocket 连接已建立'); ws.on('message', message => { console.log(`收到消息: ${message}`); }); ws.on('close', () => { console.log('WebSocket 连接已断开'); }); });
这段代码做了以下几件事情:
- 创建一个 Express.js 应用程序。
- 创建一个 HTTP 服务器。
- 创建一个 WebSocket 服务器,并将它绑定到 HTTP 服务器上。
- 监听 WebSocket 连接的建立,收到消息和断开三个事件。
现在我们已经创建了一个 WebSocket 服务器,但是我们还没有任何客户端连接到它。下面的代码演示了如何在客户端上创建 WebSocket 连接:
const ws = new WebSocket('ws://localhost:3000'); ws.onopen = event => { ws.send('Hello, WebSocket!'); }; ws.onmessage = event => { console.log(`收到消息: ${event.data}`); }; ws.onclose = event => { console.log('WebSocket 连接已关闭'); };
这段代码做了以下几件事情:
- 创建一个 WebSocket 对象,指定连接的地址。
- 监听 WebSocket 连接建立、消息收到和断开三个事件。
- 在连接建立后向服务器发送一条消息。
- 在接收到服务器发送的消息时打印到控制台。
- 在连接关闭后打印一条日志。
总结
本文演示了如何在 Express.js 应用程序中使用 WebSocket。我们使用 ws 库创建一个 WebSocket 服务器,处理连接建立、消息收到和断开三个事件。然后我们在客户端上创建了一个 WebSocket 连接,并向服务器发送一条消息,并在收到服务器发送回来的消息时打印到控制台。这些示例代码可以作为学习 WebSocket 的参考,并可以在实际的应用程序中使用。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6590b5deeb4cecbf2d601047