当前位置:网站首页 >  百科

CentOS 7环境下WebSocket服务器消息推送完整配置实操指南

时间:2026年06月03日 06:50:00 来源:易频IT社区

一、前置环境准备

本文所有命令可直接复制执行,无需额外调整,依赖轻量,零门槛可落地。

1. 安装Node.js环境

一键安装长期支持版Node.js,直接执行以下命令:

``` curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash - sudo yum install -y nodejs ```

验证安装成功,执行命令后会输出对应版本号:

``` node -v npm -v ```

2. 开放推送端口

本文默认使用8080作为推送服务端口,先在服务器防火墙开放端口:

``` sudo firewall-cmd --add-port=8080/tcp --permanent sudo firewall-cmd --reload ```

如果是阿里云/腾讯云等云服务器,必须额外到控制台安全组开放8080 TCP端口,否则无法连接

二、项目初始化与依赖安装

依次执行以下命令创建项目并安装所需依赖:

``` mkdir -p ~/push-server && cd ~/push-server npm init -y npm install ws --save npm install pm2 -g ```

ws是轻量稳定的WebSocket依赖库,pm2用来实现推送服务后台常驻和开机自启。

三、核心推送服务配置

1. 编写服务入口文件

在项目根目录创建index.js文件,复制以下完整代码,需改端口可直接修改port参数:

CentOS 7环境下WebSocket服务器消息推送完整配置实操指南

``` const WebSocket = require('ws'); // 启动服务,监听8080端口 const wss = new WebSocket.Server({ port: 8080 }); // 存储所有在线客户端连接 const onlineConnections = new Set(); // 新连接接入处理 wss.on('connection', (ws) => { onlineConnections.add(ws); console.log(`新客户端接入,当前在线:${onlineConnections.size}`); // 收到消息后广播给所有在线客户端 ws.on('message', (message) => { onlineConnections.forEach((conn) => { if (conn.readyState === WebSocket.OPEN) { conn.send(message.toString()); } }); }); // 连接断开后清理 ws.on('close', () => { onlineConnections.delete(ws); console.log(`客户端断开,当前在线:${onlineConnections.size}`); }); // 错误处理 ws.on('error', (err) => { console.error('连接错误:', err); onlineConnections.delete(ws); }); }); console.log('WebSocket推送服务已启动,监听端口:8080'); ```

默认配置为全量广播推送,适合通知、实时数据推送等绝大多数场景,点对点推送可自行修改连接存储逻辑。

2. 配置后台常驻与开机自启

执行以下命令启动推送服务,关闭SSH连接后服务不会停止:

``` pm2 start index.js --name push-server ```

执行以下命令配置开机自启,服务器重启后推送服务会自动启动:

``` pm2 startup pm2 save ```

常用管理命令:

  • pm2 status:查看服务运行状态
  • pm2 restart push-server:重启推送服务
  • pm2 logs push-server:查看服务运行日志

四、对接测试验证配置

复制以下代码保存为test-push.html,将代码中的你的服务器公网IP替换为实际服务器IP,直接用浏览器打开即可测试:

``` 推送测试

服务器消息推送测试

```

测试方法:同时用多个浏览器标签页打开这个文件,在其中一个标签页发送消息,所有标签页都能收到消息,说明配置成功。

五、常见问题与扩展配置

1. 常见问题排查

  • 连接失败超时:优先检查云服务器安全组、服务器防火墙是否开放8080端口,再执行pm2 status确认服务正常运行。
  • 服务器重启后服务无法访问:未配置开机自启,重新执行pm2 startup && pm2 save即可解决。

2. WSS(HTTPS)扩展配置

如果需要对接HTTPS站点,要求使用WSS协议,可通过Nginx反向代理实现,添加以下Nginx配置片段:

``` server { listen 443 ssl; server_name 你的推送域名; ssl_certificate /path/to/你的证书.pem; ssl_certificate_key /path/to/你的证书密钥.key; location /push { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; } } ```

重载Nginx配置后,前端连接地址改为wss://你的推送域名/push即可正常使用。

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图