🏗️ PulseHub 工作原理
PulseHub 是一个经典的 MVC(Model-View-Controller) Web 应用程序,具有扁平、易读的结构。没有使用框架 — 路由、数据库访问、身份验证和渲染全部直接用 PHP 实现。
浏览器 / 渠道提供商
│
▼
index.php ← 前端控制器
│
▼
app/router.php ← URL → [Controller, 方法]
│
▼
app/Controllers/ ← 业务逻辑
│
┌────┴────────────────────┐
▼ ▼
app/Views/ app/Helpers/db.php
(HTML 模板) (PDO MySQL 查询)
四种请求类型
- 页面请求 — GET 到
/inbox、/contacts等 → 加载 HTML + JS - API 请求 — GET/POST/PATCH/DELETE 到
/api/...→ 返回 JSON - Webhook 请求 — 提供商 POST 到
/webhooks/{type}/{id}→ 处理入站消息 - SSE 流 — 到
/sse的持久连接 → 实时推送事件到浏览器
数据流:入站消息
1. 客户在 WhatsApp 上发送消息
2. Meta POST 到 /webhooks/whatsapp/{channel_id}
3. WebhookController 验证签名,标准化载荷
4. 查找/创建联系人,查找/创建会话
5. 保存消息,触发 SSE 事件,将自动化事件加入队列
6. 向 Meta 返回 200
7. SSE 在 2 秒内推送到所有已连接的客服浏览器
数据流:出站消息
1. 客服输入回复并点击发送
2. 浏览器 POST 到 /api/conversations/{id}/messages
3. 保存消息,调用渠道 API(WhatsApp、Twilio 等)
4. 向其他客服推送 SSE 事件
5. 返回 201