3.7 KiB
本地回调测试
正式 NotifyMe 节点仅允许白名单域名 notify.bro3.net 的 HTTPS 地址,旧 allow_localhost 开关已移除。
手动验证可使用审核测试页面创建临时会话,详见说明。
本服务用于本地测试及载体预览;回环地址不会因此加入正式节点白名单。
在仓库目录使用 ComfyUI 的 Python 启动接收服务:
python tools/local_callback_server.py --port 8765 \
--carrier-dir /path/to/ComfyUI/output/ChickTools \
--password demo-password
浏览器打开 http://127.0.0.1:8765/,点击“开启监听”,页面通过 WebSocket 显示最近 100 条消息,以及载体解码出的 PNG、MP4 或 WAV。
新结果直接追加,视频保持播放;点击“停止监听”暂停页面更新,再次开启时补上已有结果。接收服务持续接收回调。
完整消息以 JSONL 追加保存到 .local/callback-received.jsonl,可用 --log 指定路径。
重启服务时从磁盘日志恢复消息和计数。按 Ctrl+C 停止服务。
--carrier-dir 指向 ComfyUI 输出载体 PNG 所在目录,--password 是 ChickHideNode
使用的测试密码。服务会扫描新 PNG,解码载体内的原始媒体,并在结果页提供图片、视频或音频控件;
密码只用于本地解码,不会显示在页面或写回媒体文件。
可以使用脚本或 HTTP 客户端向 http://127.0.0.1:8765/callback 直接发送测试 JSON:
{"id":"demo-task-001","msg":"Test message"}。
接收页面显示任务 id 和文本,包括中文、换行和空格。
同一任务 id 的多次通知会分别显示;日志中的 event_id 是接收记录编号,与任务 id 分开。
重复运行相同工作流会再次发送通知。当前接收服务用于 HTTP 200 测试:
POST /callback 固定返回 200,有效消息写入日志并通过 WebSocket 推送。
NotifyMe 收到 200 后可继续执行后续节点。
请求校验、日志保存或推送发生异常时,该测试接口也返回 200,响应正文保留错误信息;
确认接收结果时同时查看页面记录。页面、健康检查和媒体接口照常响应。
服务接口:POST /callback 接收 {"id":"demo-task-001","msg":"文本"}(兼容省略 id 的旧请求);GET /events 返回消息;
GET /health 返回状态和本次启动的接收数量。单次请求正文上限为 1 MiB。
所有测试都无需模型。
自动化验证使用以下命令:
python -X utf8 -m unittest discover -s tests -v
python -X utf8 tools/smoke_comfy.py --comfy /path/to/ComfyUI
测试使用 tests/callback_fixture.py 提供合成 DNS 结果,并仅在隔离测试进程中
将底层连接导向使用临时测试证书的本地 HTTPS 接收器。测试证书只在隔离进程中受信任,
域名白名单、内网地址校验和 TLS 验证仍执行;辅助代码不被正式节点导入。
测试数据不发送到真实域名,也不加载模型。
所有通知示例的 callback_url 默认留空,包括文件名含 local 的旧示例。
手动运行时填写白名单域名下有权使用的实际接口;从旧版升级后请重新创建 NotifyMe
或导入新版示例,并重新填写任务 ID。
视频结果测试:导入 chick_notify_video_example.json。
它使用 ImageBatchTestPattern 生成 8 帧 64×64 测试图案,再连接
ChickHideNode → ChickSaveImage 生成带密码的 MP4 载体,同时将文本发送到 NotifyMe。
启动接收服务时使用同一个 demo-password,并指向载体输出目录,结果页会显示解码后的视频。
通知分支遵守正式域名白名单;隔离测试进程外的回调不会发给本地接收页。