消息模块
概述
基础的消息模块,各推送方式均基于这个模块进行扩展和管理。
可以建立多种类型的消息推送渠道和方式,消息推送以任务的形式进行管理。(可视化配置页可自行扩展)
![](/img/docs/push_flow.png)
数据库表
任务表
名称 | 含义 |
---|---|
_id | 任务id,系统自动生成 |
name | 任务名 |
type | 推送任务类型 |
pushAddress | 推送地址 |
triggerHook | 触发时机 |
surveys | 绑定的问卷id,为空则通用 |
ownerId | 任务创建者id |
任务Log表
名称 | 含义 |
---|---|
_id | 推送记录id,系统自动生成 |
request | 推送的body数据 |
response | 响应的数据 |
status | http状态码 |
API
创建推送任务
POST /api/messagePushingTasks
Request
名称 | 含义 | 类型 | 是否必填 | 默认值 |
---|---|---|---|---|
name | 任务名称 | String | Y | |
type | 任务类型 | String | Y | |
pushAddress | 推送地址 | http | ... | Y | |
triggerHook | 触发时机 | response_inserted | ... | Y | |
surveys | 问卷IDs | String[] | N | [] |
Response
名称 | 含义 | 类型 |
---|---|---|
taskId | 任务ID | String |
示例
{
code: 200,
data: {
taskId: ...,
}
}
扩展
通信类型
1、类型定义
在 enums\messagePushing.ts
的 MESSAGE_PUSHING_TYPE
定义扩展的类型。
2、通信逻辑
在 utils
里扩展通信逻辑实现,如 utils/httpRequest.ts
。
触点事件
1、类型定义
在 enums\messagePushing.ts
的 MESSAGE_PUSHING_HOOK
定义扩展的类型。
2、事件逻辑
在message模块实现逻辑,如 runResponseDataPush
供外部模块调用。