mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-10-31 02:27:19 -04:00 
			
		
		
		
	middleware: ResponseRecorder now is an http.Flusher (fixes #677)
Flush every 250ms. This should keep latency somewhat low but there is still buffering; maybe in the future we can make this configurable.
This commit is contained in:
		
							parent
							
								
									c21ff8343c
								
							
						
					
					
						commit
						3faad41b43
					
				| @ -111,7 +111,7 @@ func NewSingleHostReverseProxy(target *url.URL, without string) *ReverseProxy { | ||||
| 			req.URL.Path = strings.TrimPrefix(req.URL.Path, without) | ||||
| 		} | ||||
| 	} | ||||
| 	rp := &ReverseProxy{Director: director} | ||||
| 	rp := &ReverseProxy{Director: director, FlushInterval: 250 * time.Millisecond} // flushing good for streaming & server-sent events | ||||
| 	if target.Scheme == "unix" { | ||||
| 		rp.Transport = &http.Transport{ | ||||
| 			Dial: socketDial(target.String()), | ||||
|  | ||||
| @ -77,3 +77,11 @@ func (r *ResponseRecorder) Hijack() (net.Conn, *bufio.ReadWriter, error) { | ||||
| 	} | ||||
| 	return nil, nil, errors.New("not a Hijacker") | ||||
| } | ||||
| 
 | ||||
| // Flush implements http.Flusher. It simply wraps the underlying | ||||
| // ResponseWriter's Flush method if there is one, or does nothing. | ||||
| func (r *ResponseRecorder) Flush() { | ||||
| 	if f, ok := r.ResponseWriter.(http.Flusher); ok { | ||||
| 		f.Flush() | ||||
| 	} | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user