ソースを参照

Merge pull request #2427 from thequux/send-headers-immediately

Make /events API send headers immediately
Michael Crosby 11 年 前
コミット
2a0efb2324
2 ファイル変更8 行追加0 行削除
  1. 1 0
      api.go
  2. 7 0
      utils/utils.go

+ 1 - 0
api.go

@@ -236,6 +236,7 @@ func getEvents(srv *Server, version float64, w http.ResponseWriter, r *http.Requ
 	}
 	w.Header().Set("Content-Type", "application/json")
 	wf := utils.NewWriteFlusher(w)
+	wf.Flush()
 	if since != 0 {
 		// If since, send previous events that happened after the timestamp
 		for _, event := range srv.events {

+ 7 - 0
utils/utils.go

@@ -695,6 +695,13 @@ func (wf *WriteFlusher) Write(b []byte) (n int, err error) {
 	return n, err
 }
 
+// Flush the stream immediately.
+func (wf *WriteFlusher) Flush() {
+	wf.Lock()
+	defer wf.Unlock()
+	wf.flusher.Flush()
+}
+
 func NewWriteFlusher(w io.Writer) *WriteFlusher {
 	var flusher http.Flusher
 	if f, ok := w.(http.Flusher); ok {