Node.js 环境中 WebSocket 的安装与简单通信案例实现

WebSocket 是一种网络协议,用于在客户端和服务器之间建立全双工、双向通信通道,特别适合实时应用如聊天、游戏或数据推送。在 Node.js 环境中,可以使用 ws 库快速实现 WebSocket 功能。本指南将逐步引导您完成安装过程,并提供一个简单的通信案例:客户端发送消息,服务器接收后回复确认。整个过程基于 Node.js(版本建议 14+),确保代码真实可靠。

步骤 1: 安装 WebSocket 库

在 Node.js 项目中,使用 npm 安装 ws 库(一个轻量级、高效的 WebSocket 实现)。打开终端,执行以下命令:

npm install ws

这会将 ws 添加到您的项目依赖中。安装完成后,您可以在代码中导入该模块。

步骤 2: 实现 WebSocket 服务器

创建一个 WebSocket 服务器,监听客户端连接。服务器将处理连接事件,并在收到消息时回复一个确认消息。新建文件 server.js,添加以下代码:

const WebSocket = require('ws'); // 导入 ws 模块

// 创建 WebSocket 服务器,监听端口 8080
const wss = new WebSocket.Server({ port: 8080 });

console.log('WebSocket 服务器已启动,监听端口 8080...');

// 监听客户端连接事件
wss.on('connection', (ws) => {
  console.log('客户端已连接');

  // 监听客户端发送的消息
  ws.on('message', (message) => {
    console.log(`收到客户端消息: ${message}`);
    
    // 回复确认消息(例如:添加 "服务器回复: " 前缀)
    const reply = `服务器回复: ${message}`;
    ws.send(reply);
    console.log(`已发送回复: ${reply}`);
  });

  // 监听连接关闭事件
  ws.on('close', () => {
    console.log('客户端已断开连接');
  });
});

步骤 3: 实现 WebSocket 客户端

创建一个简单的 WebSocket 客户端,连接到服务器并发送测试消息。在 Node.js 环境中,可以使用 ws 库的客户端功能。新建文件 client.js,添加以下代码:

const WebSocket = require('ws'); // 导入 ws 模块

// 连接到服务器(地址为 ws://localhost:8080)
const ws = new WebSocket('ws://localhost:8080');

// 监听连接成功事件
ws.on('open', () => {
  console.log('已连接到服务器');
  
  // 发送测试消息
  const message = '你好,服务器!';
  ws.send(message);
  console.log(`已发送消息: ${message}`);
});

// 监听服务器回复的消息
ws.on('message', (data) => {
  console.log(`收到服务器回复: ${data}`);
});

// 监听错误事件
ws.on('error', (error) => {
  console.error('连接错误:', error);
});

// 监听连接关闭事件
ws.on('close', () => {
  console.log('连接已关闭');
});

步骤 4: 运行和测试通信案例
  1. 启动服务器:在终端中运行服务器代码:

    node server.js
    

    输出应显示:WebSocket 服务器已启动,监听端口 8080...

  2. 启动客户端:打开另一个终端窗口,运行客户端代码:

    node client.js
    

    输出应显示:

    • 已连接到服务器
    • 已发送消息: 你好,服务器!
    • 收到服务器回复: 服务器回复: 你好,服务器!
  3. 验证通信

    • 服务器终端会显示:客户端已连接收到客户端消息: 你好,服务器!已发送回复: 服务器回复: 你好,服务器!
    • 这表示客户端成功发送消息,服务器接收后回复,客户端再接收回复,完成一个完整的双向通信循环。
总结

通过以上步骤,您已在 Node.js 环境中成功安装 ws 库,并实现了简单的 WebSocket 通信案例:服务器监听端口 8080,客户端连接并发送消息,服务器回复确认。此案例可扩展为更复杂的实时应用(如多人聊天室)。关键点:

  • 确保 Node.js 环境正确安装。
  • 使用 ws 库简化开发。
  • 测试时,先启动服务器再启动客户端。

如果有问题(如端口冲突),检查防火墙设置或更改端口号。更多高级功能(如广播消息)可参考 ws 库文档

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐