返回
聊聊websocket——基于Node.js+ws模块实现websocket通信!
前端
2023-12-04 21:55:12
❤️ WebSocket 是什么?
WebSocket 是一种网络通信协议,它允许在客户端和服务器之间建立一个长连接,从而实现双向实时通信。与传统的 HTTP 请求不同,WebSocket 通信是一种持久连接,客户端和服务器可以随时相互发送数据,而无需不断建立和断开连接。
❤️ Node.js 与 ws 模块
Node.js 是一个流行的 JavaScript 运行时环境,它允许您在服务器端执行 JavaScript 代码。ws 模块是 Node.js 的一个流行的 WebSocket 库,它提供了构建 WebSocket 服务器和客户端的便捷方法。
❤️ 创建一个聊天室案例
为了演示如何使用 Node.js 和 ws 模块构建 WebSocket 通信,我们将创建一个简单的聊天室案例。
- 安装依赖
npm install express ws
- 创建服务器
const express = require('express');
const WebSocket = require('ws');
const app = express();
const server = app.listen(3000);
const wss = new WebSocket.Server({ server });
- 处理 WebSocket 连接
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
wss.clients.forEach(function each(client) {
if (client !== ws && client.readyState === WebSocket.OPEN) {
client.send(message);
}
});
});
});
- 创建客户端
const WebSocket = require('ws');
const ws = new WebSocket('ws://localhost:3000');
ws.on('open', function open() {
ws.send('hello');
});
ws.on('message', function incoming(data) {
console.log('received: %s', data);
});
- 运行项目
node server.js
- 测试聊天室
打开两个终端窗口,分别运行客户端和服务器脚本。在第一个终端窗口中,发送一条消息,您应该会在第二个终端窗口中看到该消息。
❤️ 总结
通过这个聊天室案例,我们学习了如何使用 Node.js 和 ws 模块构建 WebSocket 通信。WebSocket 非常适合构建实时交互性强的应用,例如聊天室、游戏和协作工具。