## 背景 uvscope 0.4 的 HTTP/2 调试计划展示 ALPN、stream ID、GOAWAY 与 HEADERS/DATA 摘要。现状: - ALPN、GOAWAY(错误码 / last_stream_id)、响应 `stream_id`、`retryable` 都已存在; - 但没有任何逐帧回调(`doc/http2-guide.md` §11 明确写“没有逐帧回调”),拿不到 HEADERS/DATA 的数量、大小与顺序。 ## 建议 1. 增加可选的帧事件回调,例如 `on_frame(type, flags, stream_id, length)`;默认不携带 payload,避免把调试器变成抓包器。 2. 至少覆盖 HEADERS、DATA、RST_STREAM、GOAWAY、WINDOW_UPDATE。 3. 从 `uvcpp_http_client` 暴露本次请求的帧摘要(或转发回调),不需要调用方直接持有 h2 session。 4. 回调所在循环与生命周期写清楚;连接关闭后不再回调。 ## 验收 - 一次 GET 能报告 HEADERS 数、DATA 帧数与总长度; - GOAWAY 的 error code / last_stream_id 与现有访问器一致; - 未开启回调时零额外开销(或可忽略)。 建议进入 0.4 / 1.9。
Activity
feat(h2): 可选的逐帧事件回调(#52)
Antruly commentedon Oct 20, 2026
已实现并合入 master(
91b163d):uvcpp_h2_session::callbacks::on_frame+uvcpp_http_client::set_h2_frame_callback();HEADERS/DATA/RST_STREAM/GOAWAY/WINDOW_UPDATE,GOAWAY 字段与访问器同源。用例web_h2_frame_events_func。