ghttp server 回调函数调用后自动输出缓冲区数据

This commit is contained in:
John
2017-12-26 13:31:07 +08:00
parent 3248234067
commit 165eccede6
2 changed files with 8 additions and 4 deletions

View File

@ -47,6 +47,7 @@ func (s *Server)callHandler(h *HandlerItem, r *ClientRequest, w *ServerResponse)
c.MethodByName("Shut").Call(nil)
} else {
h.faddr(s, r, w)
w.Output()
}
}

View File

@ -52,7 +52,7 @@ func (r *ServerResponse) WriteHeaderEncoding(encoding string) {
r.Header().Set("Content-Type", "text/plain; charset=" + encoding)
}
// 获取缓冲区数据
// 获取当前缓冲区中的数据
func (r *ServerResponse) Buffer() []byte {
r.bufmu.RLock()
defer r.bufmu.RUnlock()
@ -61,7 +61,10 @@ func (r *ServerResponse) Buffer() []byte {
// 输出缓冲区数据到客户端
func (r *ServerResponse) Output() {
r.bufmu.RLock()
defer r.bufmu.RUnlock()
r.ResponseWriter.Write(r.buffer)
r.bufmu.Lock()
defer r.bufmu.Unlock()
if len(r.buffer) > 0 {
r.ResponseWriter.Write(r.buffer)
r.buffer = make([]byte, 0)
}
}