Web 套接字(WebSocket)是 HTML5 中引入的一种通信协议,它可以在浏览器和服务器之间建立双向通信的连接,实现实时性的数据交互。虽然 HTML5 支持 WebSocket,但在实际开发中,我们还需要使用一些工具来帮助快速开发和部署 WebSocket,其中 Express.js 是非常常用的工具之一。本篇文章将介绍如何使用 Express.js 创建 Web 套接字库。
什么是 Express.js
Express.js 是一个开源的 Node.js Web 应用程序框架,用于构建具有复杂功能的 Web 应用程序和 API。它提供了许多有用的功能和功能,例如路由、中间件、模板引擎等。Express.js 构建在 Node.js 之上,它可以轻松实现 Web 套接字。
如何创建 Web 套接字库
先使用 Node.js 安装 Express.js:
npm install express
接下来,我们需要通过 express()
函数创建一个 Express 实例:
const express = require('express'); const app = express();
Express 应用程序有一个内置的 HTTP 服务器,我们可以使用 app.listen()
方法启动服务器,然后监听使用浏览器或其他客户端的连接请求。
对于 Web 套接字,我们需要使用 ws
库来为客户端和服务器创建套接字。在安装了 ws
库后,我们可以使用下面的代码来创建 WebSocket:
const WebSocket = require('ws'); const wss = new WebSocket.Server({ server: app.listen(3000) });
上述代码在创建 WebSocket 的时候,需要将 HTTP 服务器传递给 WebSocket 构造函数,以便在同一端口上同时监听 HTTP 和 WebSocket 请求。
接下来,我们可以通过在 connection
事件处理程序中监听 WebSocket 连接来处理来自客户端的请求:
wss.on('connection', function connection(ws) { ws.on('message', function incoming(message) { console.log('received: %s', message); }); ws.send('something'); });
在上述代码中,我们定义了一个 connection
事件处理程序,它在客户端连接到 WebSocket 服务器时被调用。在事件处理程序内部,我们监听 message
事件以接收客户端发送过来的消息。我们还可以使用 send
方法向客户端发送消息。
接下来,我们可以使用 Express.js 的路由功能,为 WebSocket 添加不同的路由和功能。例如,假设我们要添加一个路由,用于向客户端发送时钟时间:
-- -------------------- ---- ------- ---------------- ------------- ---- - ---------------------------- ------------ - -- ------------------ --- --------------- - --------------- ----------------------- - --- -------------- ------- ---
在上述代码中,我们在 Express.js 中定义了一个路由,当客户端访问 /time
路由时,会向所有 WebSocket 客户端发送当前的时钟时间。我们可以通过 wss.clients
属性获取所有 WebSocket 客户端。
总结
本篇文章介绍了如何使用 Express.js 创建 Web 套接字库。我们首先使用 express()
函数创建了一个 Express 实例,并使用 app.listen()
方法启动 HTTP 服务器。然后,我们使用 ws
库创建了 WebSocket,并在连接事件处理程序中监听来自客户端的请求。最后,我们使用了 Express.js 的路由功能,向客户端发送时钟时间。这篇文章详细说明了如何使用 Express.js 创建 Web 套接字库,并提供了示例代码供读者参考学习。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647d3db6968c7c53b080d4c3