当前位置:网站首页>GoFrame缓冲输出到客户端Flush()
GoFrame缓冲输出到客户端Flush()
2022-08-09 16:10:00 【传说中胖子】
版本:v2.x
官方文档中介绍任何时候可以通过OutputBuffer方法输出缓冲区数据到客户端,并清空缓冲区数据。但使用r.Response.Flush()发现并不能实时输出。
修改下net\ghttp\ghttp_response_writer.go文件的Flush方法
if w.buffer.Len() > 0 {
w.writer.Write(w.buffer.Bytes())
w.writer.(http.Flusher).Flush() //添加此行
w.buffer.Reset()
}
以下为使用net/http原生写法
package main
import (
"fmt"
"log"
"net/http"
"time"
)
func handler(res http.ResponseWriter, r *http.Request) {
fmt.Fprintln(res, "<body>") //不加body没有效果
for i := 0; i < 10; i++ {
//fmt.Fprint(res, "<script>document.body.innerHTML = ''</script>")
fmt.Fprintf(res, "%d<br>", i)
if f, ok := res.(http.Flusher); ok {
f.Flush()
} else {
log.Println("Damn, no flush")
}
time.Sleep(1000 * time.Millisecond)
}
fmt.Fprintln(res, "</body>")
}
func main() {
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
边栏推荐
猜你喜欢
随机推荐
@AllArgsConstructor and @NoArgsConstructor
What is control board custom development?
pgsql备份工具,哪个比较好?
[ Kitex Source Code Interpretation ] Request to retry
HR to get the entry date RP_GET_HIRE_DATE
利用C#传输Json数据
关于聊天机器人,跨境电商人必须知道这些…
How bad can a programmer be?
小家电控制板开发——未来小家电行业的发展方向
B49 - 基于STM32单片机的心率血氧检测与远程定位报警装置
元宇宙虚拟场景互动获得生活、工作、学习新鲜体验
ABP 6.0.0-rc.1的新特性
智能家居控制系统的功能和特点
聊聊基于docker部署的mysql如何进行数据恢复
云服务的分类和应用
Print the star chart "Recommended Collection"
【.NET 6】开发minimal api以及依赖注入的实现和代码演示
Reasons for slow startup of IDEA (1)
数据可视化的类别及其重要性
WinForm(三)揭开可视化控件的面纱