#4661·gin

feat: 添加 InitSSE()、SSEStream() 帮助函数, 并修复 Stream() 中的过时的 CloseNotifier

作者: shahariaz创建于 2026年5月22日更新于 2026年7月25日
标签type/proposal

QQ 特性描述

□ 问题

  1. " C.SSEvent " / " C.Stream " 要求每个处理器上都有锅炉板SSE头。
  2. 不存在"设置SSE + 循环直到断开"帮助器.
  3. c.Stream'使用已贬值的http.Close Notifer'接口 (w.Close Notify ()',Go 1.20+中从net/http'中删除。)

□ 拟议更改

c. InitSSE ()' (新) 设置“ Content-Type: text/event-stream” ,“缓存控制:无缓存” , 连接:保持原状'和 " 立即冲出 " 页眉 -- -- 删除 每个SSE处理器的复制版锅炉板。

c.SESSTREAM (step func (* Context) bul (新)) ' 调用InitSSE ()',然后循环调用`步骤',每次调用后冲出。 当客户端断开时返回“ true”(通过“request.context ()) 。 完成(), " 步骤 " 假返回时的 " 假 " 。 与现有的 " Stream() " 相对应。

C.Stream ()' 固定 将w.Close Notify()'改为`c.request.Context()。 完成() 现代、 用于检测客户端断开的不折旧方法。

□ 考虑的其他选择 用户可以直接拨打`c.render',但人文基因组学对 常见案件。 目前没有库级的 SSE 循环帮助器 。

□ 核对表

  • [ 所有三个变化都添加了测试
  • 现有试验文本 " /试验文本 " 更新