什么是 WebSocket
WebSocket 是一种在单个 TCP 连接上进行双向通信的协议。它是一种轻量级的协议,可以在客户端和服务器之间实现实时通信,而不需要轮询或长轮询。WebSocket 协议可以在任何 Web 应用程序中使用,包括前端和后端应用程序。
WebSocket 的优点
与传统的 HTTP 请求响应模式相比,WebSocket 具有以下优点:
- 实时性:WebSocket 可以实现实时通信,而不需要轮询或长轮询。
- 节省带宽:WebSocket 通过在单个连接上发送消息来节省带宽。
- 更少的延迟:与 HTTP 请求响应模式相比,WebSocket 的延迟更少。
- 可以实现双向通信:WebSocket 可以实现双向通信,客户端和服务器可以同时发送和接收消息。
如何在 Express.js 中使用 WebSocket
在 Express.js 中使用 WebSocket 需要使用一个 WebSocket 库。本文将使用 ws 库来实现 WebSocket。
安装 ws 库
使用以下命令安装 ws 库:
npm install --save ws
创建 WebSocket 服务器
在 Express.js 中创建 WebSocket 服务器需要用到 ws
库。以下是一个简单的示例:
// javascriptcn.com 代码示例 const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 8080 }); wss.on('connection', (ws) => { console.log('Client connected'); ws.on('message', (message) => { console.log(`Received message => ${message}`); }); ws.on('close', () => { console.log('Client disconnected'); }); });
在上面的代码中,我们创建了一个 WebSocket 服务器,并在端口 8080 上监听连接请求。当客户端连接到服务器时,服务器将触发 connection
事件。在 connection
事件中,我们可以处理客户端的消息和关闭事件。
在客户端中使用 WebSocket
使用 WebSocket 的客户端可以是任何支持 WebSocket 的浏览器或应用程序。以下是一个简单的示例:
// javascriptcn.com 代码示例 const ws = new WebSocket('ws://localhost:8080'); ws.onopen = () => { console.log('Connected to server'); ws.send('Hello from client'); }; ws.onmessage = (message) => { console.log(`Received message => ${message.data}`); }; ws.onclose = () => { console.log('Disconnected from server'); };
在上面的代码中,我们创建了一个 WebSocket 客户端,并连接到服务器。在连接成功后,我们将发送一条消息到服务器。在接收到服务器的消息时,我们将在控制台中打印消息。
总结
在本文中,我们介绍了 WebSocket 的优点,并演示了如何在 Express.js 中使用 WebSocket 实现实时通讯。通过使用 WebSocket,我们可以实现实时通讯,减少延迟时间和带宽使用。因此,对于需要实时通讯的应用程序来说,WebSocket 是一个非常有用的工具。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6571de33d2f5e1655daa54a0