openai-proxy
openai-proxy copied to clipboard
Streaming模式并不实时
io.Copy无法保证实时转发streaming流,需要改进
`buf := make([]byte, 1024*1024) // 1MB buffer for {
n, err := resp.Body.Read(buf)
if err != nil && err != io.EOF {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
if n == 0 {
break
}
if _, err := w.Write(buf[:n]); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.(http.Flusher).Flush()
}`
请教 io.Copy 不能实时转发的原因可能是什么?
我注意到这里代码有一条 w.(http.Flusher).Flush()
,这是修复实时性的关键吗?
请教 io.Copy 不能实时转发的原因可能是什么? 我注意到这里代码有一条
w.(http.Flusher).Flush()
,这是修复实时性的关键吗?
io.Copy 有内存缓冲区的 缓冲区满了才会返回