跳到主要内容

🏗️ 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 查询)

四种请求类型

  1. 页面请求 — GET 到 /inbox/contacts 等 → 加载 HTML + JS
  2. API 请求 — GET/POST/PATCH/DELETE 到 /api/... → 返回 JSON
  3. Webhook 请求 — 提供商 POST 到 /webhooks/{type}/{id} → 处理入站消息
  4. 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