# web-msg-sender **Repository Path**: FEIGE/web-msg-sender ## Basic Information - **Project Name**: web-msg-sender - **Description**: 基于NodeJS的多进程web消息推送系统,支持windows、Linux - **Primary Language**: JavaScript - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-08 - **Last Updated**: 2026-04-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Web 消息推送工具 仿workerman web-msg-sender 支持Windows、Linux,基于nodeJS Socket.IO 构建,支持集群部署。 ## 功能特性 - 实时消息推送 - 集群支持(通过 Socket.IO 适配器) - 多进程负载均衡 - HTTP 服务默认监听 3000 端口 - 跨平台,支持Linux、Windows ## 项目介绍 [项目介绍](dataflow.md) ## 使用方法 ### 安装依赖 ```bash npm install ``` ### PM2启动服务 ```bash npm run pm2 ``` ### PM2停止服务 ```bash npm run pm2:stop ``` ### PM2重启服务 ```bash npm run pm2:restart ``` ### PM2查看日志 ```bash npm run pm2:logs ``` ### 访问客户端 - 发送端:`http://localhost:3000/sender.html` - 接收端:`http://localhost:3000/client.html` ### 其他项目调用接口推送 web前端用户登录socketio服务器 ``` // 生成唯一的 UID,可传自有系统内的用户ID或用户标识 function generateUid() { return 'user_' + Date.now() + '_' + Math.floor(Math.random() * 10000); } // 连接到 Socket.IO 服务器 const socket = io('http://localhost:3000'); const generatedUid = generateUid(); // 连接成功 socket.on('connect', () => { addMessage(`已连接到服务器,Socket ID: ${socket.id}`); // 自动绑定生成的 UID socket.emit('bind_uid', generatedUid); document.getElementById('uid').value = generatedUid; addMessage(`自动绑定 UID: ${generatedUid}`); }); // 接收消息 socket.on('message', (message) => { addMessage(`收到: ${JSON.stringify(message)}`); }); ``` 后端调用socketio服务器接口推送消息 url:`http://localhost:3000/api/push` method:`POST` payload:`{"uid": "uid", "message": "message"}` ``` curl -X POST http://localhost:3000/api/push -H "Content-Type: application/json" -d '{"uid": "user123", "message": "Hello to specific user"}' ``` ## 项目结构 ``` ├── client.html # 接收消息的客户端页面 ├── sender.html # 发送消息的页面 ├── server.js # Node.js 服务端 └── package.json # 项目依赖配置 ``` ## 技术栈 - Node.js - Socket.IO - Socket.IO Cluster Adapter