返回行(发给客户端)
返回行决定 Mock **向客户端发什么**:单词简写(自动包 JSON)、完整 JSON、纯文本、从文件读取、延迟 `+300ms`、发完关连接 `!close` 等。返回是 Flow 的核心产出。
形式一览
| 形式 | 写法 | 发出内容 |
|---|---|---|
| 单词简写 | subscribed | {" |
| 严格 JSON | {"type":"ok","id":"$id"} | template 展开 $ 后 stringify |
| 文件 | @fixtures/room.json | 读文件;默认 JSON stringify 发送 |
| 引号字面量 | "pong" | 纯文本帧 |
| 管道链 | @a.json | set(...) | template | 见第十节 |
行尾修饰(顺序固定)
... | pipe ... | pipe ... +2s !close 1000
| 修饰 | 说明 |
|---|---|
| +500ms / +2s / +0 | 延迟发送(锚点见 5.1;--@loop 的 tick 内 +delay 相对 tick 时刻) |
| !close [code] | 该返回发出后,server 主动关闭 WS;code 默认 1000 |
省略 +delay = 立即发送。
平级多返回
见 5.1。Imposter 式 ack + 事件流:同一 -- / --@ 条件下多行返回即可。
{type: ...} 与简写
- 推荐 strict JSON:{"type":"loginSuccess",...}
- 简写 loginSuccess:由 # dispatch 编译为 {"type":"loginSuccess"}
- 不支持无引号 JS 对象 {type: loginSuccess};validate 报错
编译流水线
返回行 → 载入返回体 → 管道左结合:每一 | transform 的 输入 为上一段输出(首段输入为返回体本身)→ 末段产出 wire → injectWebSocketMessage
() 内参数为 配置项,不是管道主输入(v2 见 22.4.1.0)。
若含 !close → 发送后 close connection