1 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
默認(rèn)的http.ResponseWriter使用bufio.ReadWriter作為底層連接,它緩沖所有寫(xiě)入。如果您希望盡可能快地發(fā)送數(shù)據(jù),則必須在每次寫(xiě)入后刷新緩沖區(qū)。
在net/http包中有一個(gè)http.Flusher接口,由默認(rèn)的http.ResponseWriter 實(shí)現(xiàn)。
有了這個(gè),您可以按如下方式重寫(xiě)您的示例:
func handler(w http.ResponseWriter, req *http.Request) {
switch req.Method {
case "GET":
for {
fmt.Fprintln(w, "repeating...")
if f, ok := w.(http.Flusher); ok {
f.Flush()
}
}
}
}
這將在每次寫(xiě)入后刷新內(nèi)部緩沖區(qū)。
- 1 回答
- 0 關(guān)注
- 185 瀏覽
添加回答
舉報(bào)