node启动websocket保持后台一直运行

在 Node.js 中启动一个 WebSocket 服务器并使其在后台持续运行,你可以使用几种方法。下面是一种常见的方法,通过创建一个简单的 WebSocket 服务器并使用 node 命令直接运行它,同时确保它在后台运行。

1. 创建 WebSocket 服务器

首先,你需要创建一个简单的 WebSocket 服务器。假设你使用 ws 库,这是一个流行的 WebSocket 库。

  1. 初始化一个新的 Node.js 项目(如果你还没有的话):
bash 复制代码
//cmd

mkdir websocket-server  
cd websocket-server  
npm init -y

2.安装 ws 库:

bash 复制代码
//cmd
npm install ws

3.创建一个 server.js 文件,并添加以下代码:

javascript 复制代码
//javascript

const WebSocket = require('ws');  

const wss = new WebSocket.Server({ port: 8080 });  

wss.on('connection', (ws) => {  
    console.log('New client connected');  

    ws.on('message', (message) => {  
        console.log(`Received: ${message}`);  
        // Echo the message back to the client  
        ws.send(`You said: ${message}`);  
    });  

    ws.on('close', () => {  
        console.log('Client disconnected');  
    });  
});  

console.log('WebSocket server is running on ws://localhost:8080');

2. 在后台运行 Node.js 服务器

有几种方法可以在后台运行 Node.js 应用程序,例如使用 nohuppm2forever 等工具。下面是一些常见的方法:

使用 pm2(推荐)

pm2 是一个流行的 Node.js 应用程序的进程管理工具,它提供了强大的功能,如负载均衡、日志管理和监控。

1.全局安装 pm2

bash 复制代码
//cmd

npm install -g pm2

2.使用 pm2 启动你的 WebSocket 服务器:

bash 复制代码
//cmd


pm2 start server.js --name websocket-server

3.查看正在运行的进程:

bash 复制代码
//cmd
pm2 list

4.停止进程:

bash 复制代码
//cmd
pm2 stop websocket-server

5.删除进程(如果需要):

bash 复制代码
//cmd
pm2 delete websocket-server

pm2 会自动管理你的进程,并在系统重启时重新启动它们。你还可以通过 pm2 logs 查看日志。

  1. 验证 WebSocket 服务器

你可以使用 WebSocket 客户端(如浏览器控制台或 Postman 的 WebSocket 测试功能)来测试你的 WebSocket 服务器。

在浏览器控制台中,你可以使用以下代码:

javascript 复制代码
//javascript
const ws = new WebSocket('ws://localhost:8080');  
  
ws.onopen = () => {  
    console.log('Connected to WebSocket server');  
    ws.send('Hello, server!');  
};  
  
ws.onmessage = (event) => {  
    console.log(`Message from server: ${event.data}`);  
};  
  
ws.onclose = () => {  
    console.log('Disconnected from WebSocket server');  
};

这样,你就可以验证 WebSocket 服务器是否按预期工作并在后台持续运行。

相关推荐
Sylvia33.7 小时前
板球实时数据接入实战:从Frames模型到多赛制适配
java·python·websocket·网络协议·架构
脉动数据行情18 小时前
Node.js WebSocket 实现贵金属实时行情监听 伦敦金 / 伦敦银自动重连方案
websocket·node.js·vim
不老刘8 小时前
一行命令解决 Node.js 版本兼容问题:`--openssl-legacy-provider` 深度解析
node.js
万敏1 天前
Vue3 全栈实战:第一阶段复盘(第1-8周)
vue.js·node.js·全栈
企业通信技术笔记1 天前
企业IM内外网隔离部署:DNS、证书、WebSocket与跨网接口设计
websocket·网络协议·架构·php·信息与通信
濮水大叔1 天前
舒服了,CabloyJS 的 AI Spec 驱动开发会自动生成甘特图和燃尽图
typescript·node.js·vibecoding
FungLeo1 天前
成为全栈·Node 后端篇·部署上线:从本地起服到真正对外服务
node.js·后端部署·成为全栈
妙码生花1 天前
golang 应用服务端部署(使用 systemd 服务)
开发语言·人工智能·后端·golang·node.js·php·gin
柚稚姐姐1 天前
npm install pnpm -g npm error code EACCES npm error syscall symlink
前端·npm·node.js
FungLeo2 天前
成为全栈·Node 后端篇·容器化:给 Node 应用写一个像样的 Dockerfile
docker·node.js·dockerfile·成为全栈·后端服务容器·docker 容器