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

ops/2024/10/20 16:03:51/

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

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

//cmd
mkdir websocket-server   //创建websocket-server文件夹
cd websocket-server      //进入websocket-server文件夹
npm init -y

2.安装 ws 库
使用 npm 安装 ws 库。

//cmd
npm install ws     //在websocket-server项目中安装ws

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

//javascriptconst 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 服务器。

//cmd
node server.js

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

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

//javascriptconst 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 服务器,并可以通过客户端与其进行通信。


http://www.ppmy.cn/ops/121895.html

相关文章

Pikachu-Sql-Inject - 通过sql进行远程服务器控制(试验)

secure_file_priv是MySQL中的系统变量,用于限制文件的读取和写入。 查看命令: show variables like "secure%" //或者 select secure_file_priv; 1.secure_file_priv NULL ,限制文件的读取和写入。 2.secure_file_priv 文件路…

oracle 新建用户,用户插入数据报错:ORA-01950: 对表空间 ‘USERS‘ 无权限

oracle 新建用户,用户插入数据报错:ORA-01950: 对表空间 ‘USERS’ 无权限 根据业务需求创建了一个新的表空间和一个新的用户,当用这个新用户创建表时,报错:ORA-01950: 表空 间’USERS’中无权限。我已经把创建表的权限赋给了此用…

Java每日面试题(JVM)(day15)

目录 Java对象内存布局markWord 数据结构JDK1.8 JVM 内存结构JDK1.8堆内存结构GC垃圾回收如何发现垃圾如何回收垃圾 JVM调优参数 Java对象内存布局 markWord 数据结构 JDK1.8 JVM 内存结构 程序计数器: 线程私有,记录代码执行的位置. Java虚拟机栈: 线程私有&#…

程序猿成长之路之设计模式篇——设计模式简介

无论是对于代码质量还是代码可维护性、可扩展性,使用合适的设计模式都能够起到促进提升的作用,此外在软考的软件工程师、系统架构师职称考试中,设计模式也是必考的一块内容,因此我打算开拓一个新的专栏简单介绍一下设计模式&#…

深入浅出 CSS 定位:全面解析与实战指南

“批判他人总是想的太简单 剖析自己总是想的太困难” 文章目录 目录 前言文章有误敬请斧正 不胜感恩!1. CSS 定位概述2. 定位类型详解2.1 static(默认定位)2.2 relative(相对定位)2.3 absolute(绝对定位&am…

C++ 函数模板与类模板知识点总结

一、基础概念 1.1 什么是模板 模板是 C 的一个特性&#xff0c;使得你可以编写与类型无关的代码。模板通过定义类型参数&#xff0c;使得同一段代码可以适用于多种数据类型。 二、函数模板 2.1 定义与语法 基本定义&#xff1a; template <typename T> T functionNa…

【AI自然语言处理应用】通过API调用通义晓蜜CCAI-对话分析AIO应用

通义晓蜜CCAI-对话分析AIO 对话分析AIO&#xff0c;即对话分析all-in-one API&#xff0c;是基于深度调优的对话大模型&#xff0c; 为营销服类产品提供智能化升级所需的生成式摘要总结、质检、分析等能力的官方应用。 面向对象&#xff1a;开发者、自研企业、传统呼叫中心采购…

开发指南067-单元测试

平台中单元测试使用两个工具&#xff1a; 1、接口类&#xff1a;使用swagger。 swagger前面介绍已经很多了&#xff0c;不再累述。注意下token的设置即可&#xff0c;否则会报未登录&#xff0c;无法调用该接口。当然也可以修改代码&#xff0c;屏蔽校验。但是屏蔽校验无法获取…