Browse Source

Experiments: HTTP streaming render

Manu Mtz-Almeida 10 năm trước cách đây
mục cha
commit
421793bfba
1 tập tin đã thay đổi với 14 bổ sung0 xóa
  1. 14 0
      context.go

+ 14 - 0
context.go

@@ -375,6 +375,20 @@ func (c *Context) File(filepath string) {
 	http.ServeFile(c.Writer, c.Request, filepath)
 }
 
+func (c *Context) Stream(step func(w http.ResponseWriter)) {
+	w := c.Writer
+	clientGone := w.CloseNotify()
+	for {
+		select {
+		case <-clientGone:
+			return
+		default:
+			step(w)
+			w.Flush()
+		}
+	}
+}
+
 /************************************/
 /******** CONTENT NEGOTIATION *******/
 /************************************/