使用 Node.js 创建一个 WebSocket 服务器

使用 Node.js 创建一个 WebSocket 服务器相对简单。你可以使用 ws 库,这是一个流行的 WebSocket 实现。以下是一个基本的步骤来创建一个 WebSocket 服务器:

1.初始化 Node.js 项目

首先,你需要一个 Node.js 项目。如果你还没有项目,可以创建一个新的目录并初始化一个新的 Node.js 项目。

bash 复制代码
//cmd
mkdir websocket-server   //创建websocket-server文件夹
cd websocket-server      //进入websocket-server文件夹
npm init -y

2.安装 ws

使用 npm 安装 ws 库。

bash 复制代码
//cmd
npm install ws     //在websocket-server项目中安装ws

3.创建 WebSocket 服务器

在项目目录中创建一个名为 server.js 的文件,并添加以下代码来创建一个 WebSocket 服务器。

javascript 复制代码
//javascript

const WebSocket = require('ws');  

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

// 当有新客户端连接时触发 connection 事件  
wss.on('connection', (ws) => {  
  console.log('新客户端已连接');  

  // 接收客户端消息  
  ws.on('message', (message) => {  
    console.log(`收到消息: ${message}`);  

    // 向客户端发送消息  
    ws.send(`服务器已收到消息: ${message}`);  
  });  

  // 处理客户端断开连接  
  ws.on('close', () => {  
    console.log('客户端已断开连接');  
  });  

  // 处理错误  
  ws.on('error', (error) => {  
    console.error(`WebSocket 错误: ${error}`);  
  });  
});  

console.log('WebSocket 服务器正在运行在 ws://localhost:8080');

4.运行服务器

在终端中运行以下命令来启动 WebSocket 服务器。

javascript 复制代码
//cmd
node server.js

5.测试 WebSocket 服务器

你可以使用浏览器控制台或另一个 WebSocket 客户端(如 websocatwscat)来测试 WebSocket 服务器。

在浏览器中:打开你的浏览器控制台,然后运行以下代码:

javascript 复制代码
//javascript

const ws = new WebSocket('ws://localhost:8080');  

ws.onopen = () => {  
  console.log('连接到服务器');  
  ws.send('Hello, WebSocket!');  
};  

ws.onmessage = (event) => {  
  console.log(`收到服务器的消息: ${event.data}`);  
};  

ws.onclose = () => {  
  console.log('与服务器断开连接');  
};  

ws.onerror = (error) => {  
  console.error(`WebSocket 错误: ${error}`);  
};

你应该会看到浏览器控制台中的日志,显示与 WebSocket 服务器的连接、发送和接收消息。

通过以上步骤,你就成功创建了一个简单的 WebSocket 服务器,并可以通过客户端与其进行通信。

相关推荐
paopaokaka_luck13 分钟前
智能推荐社交分享小程序(websocket即时通讯、协同过滤算法、时间衰减因子模型、热度得分算法)
数据库·vue.js·spring boot·后端·websocket·小程序
沐尘而生1 小时前
【AI智能体】智能音视频-硬件设备基于 WebSocket 实现语音交互
大数据·人工智能·websocket·机器学习·ai作画·音视频·娱乐
伍哥的传说2 小时前
H3初识——入门介绍之常用中间件
前端·javascript·react.js·中间件·前端框架·node.js·ecmascript
超级土豆粉3 小时前
npm 包 scheduler 介绍
前端·npm·node.js
WildBlue3 小时前
流式输出:前端工程师的魔术表演,小白也能看懂!🎩✨
前端·javascript·node.js
2501_916007474 小时前
iOS 性能测试工具全流程:主流工具实战对比与适用场景
websocket·tcp/ip·http·网络安全·https·udp
GDAL5 小时前
Node.js Stream 深入全面讲解
node.js
高压锅_122017 小时前
Django Channels WebSocket实时通信实战:从聊天功能到消息推送
python·websocket·django
爱分享的程序员19 小时前
前端面试专栏-算法篇:20. 贪心算法与动态规划入门
前端·javascript·node.js
我叫黑大帅1 天前
Sequelize:让你和数据库唠嗑像聊微信一样简单 😎
后端·node.js