Msg Center(消息中心)产品系统Vibe Coding

我要开发同款
Martin2026年07月26日
4阅读

技术信息

语言技术
TypeScriptNode.jsMySQL
系统类型
Web
行业分类
开发工具

作品详情

行业场景

数字化业务普遍采用前后端分离、微服务与多端协同,订单状态、告警通知、任务进度、智能体编排结果等事件需要跨系统可靠传递。传统点对点 HTTP 回调耦合重、难扩展;完整引入 Kafka、RabbitMQ 等企业级中间件又常超出中小团队与本地多服务演示环境的运维成本。轻量级「消息中心」——以 Topic 划分通道、REST 推送、WebSocket 订阅、历史可查——成为研发效能与产品能力平台中的基础组件。

实时协作、低代码交付与 AI Agent 编排进一步放大了对可观测事件总线的需求:工具中枢、数据流引擎、部署管理等服务需要统一订阅业务事件,并在客户端晚连、进程重启等场景下补齐漏消息。相较重型 MQ,面向 HTTP/WebSocket、可 API 管理、可与数据服务/版本控制解耦的轻量方案更易嵌入本地多仓库并行开发与产品能力注册体系。

行业侧,企业协同办公、物联网告警、电商订单与 DevOps 流水线均依赖「推送—订阅—回放」闭环;开源生态中 Express、ws 等成熟组件降低实现门槛。长期看,该类服务将从「纯推送」演进为带客户端身份、定向回放、能力注册与可审计日志的事件基础设施,在中小团队平台工程与个人作品生产场景中保持稳定需求。

功能介绍

本项目提供轻量级消息推送与订阅能力,业务系统通过 REST 写入消息,在线客户端通过 WebSocket 实时接收,并支持历史查询与漏消息回放。

**Topic 与通道管理**:注册、查询、删除 Topic,按业务划分消息通道(如订单通知、系统告警)。

**消息推送与查询**:`POST /api/messages` 推送消息并落库;支持按 Topic、时间范围查询历史消息,便于排查与审计。

**实时订阅**:客户端连接 `WS /ws/subscribe`,可同时订阅多个 Topic;服务端在消息写入后向在线订阅者推送。

**客户端登记与消息回放(v1.0.4)**:握手时可携带 `clientId`、昵称、描述并落库;提供 `POST /api/messages/replay`,按客户端、Topic 与时间范围定向补投,仅投递到目标连接,解决晚连或重启导致的消息丢失。

**工程与对接**:提供 Swagger(`/api-docs`)、CORS、请求日志、健康检查;数据经 model-data-server 访问 MySQL,结构变更由 model-data-version-control 版本化;支持产品能力注册,便于纳入统一产品能力库。Makefile 统一启停,降低同机多服务运维干扰。

项目实现

我负责本服务从架构设计到各版本迭代交付,主要包括:Express MVC 分层(Controller / Service / Model / Router);Topic 与消息的 CRUD 及推送链路;WebSocket 连接管理、多 Topic 订阅与广播;v1.0.4 客户端握手落库与按 `clientId` 定向回放;对接 DataServerClient、VersionControlClient;Swagger、日志、CORS 与 Makefile 运维;以及设计文档、API 用户指南、迭代测试脚本与产品能力注册数据。

技术栈以 TypeScript + Node.js + Express 为主,实时侧使用 `ws`,HTTP 客户端用 Axios,配置用 dotenv;持久化不直连数据库,而通过 model-data-server 多租户 API 访问 MySQL,表结构由 `scripts/init-database.json` 经版本控制服务演进。架构上 HTTP 与 WebSocket 共用同一端口(默认 3580),消息写入后同步触发在线推送,回放路径独立按客户端连接映射投递。

实现难点与亮点:一是订阅连接与 Topic、clientId 多维映射,保证广播与定向回放互不干扰;二是晚连场景下按时间范围补投且不误投其他客户端;三是 WebSocket 订阅诊断与回归脚本,提升断线重连可观测性;四是数据访问与表结构版本与业务解耦,便于多服务共存演进。这些设计使系统在轻量部署下仍具备可靠的实时通道与可回放事件能力。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论