bf85b32c1d
gin already support http2, while previously not support server push. Add Pusher() function to extend the ResponseWriter interface. ```golang // get http.Pusher if pusher := c.Writer.Pusher(); pusher != nil { // use pusher.Push() to do server push } ``` <img width="881" alt="screen shot 2018-03-07 at 11 20 49 pm" src="https://user-images.githubusercontent.com/16014993/37100619-680c00c6-225e-11e8-9352-76ec3bd62894.png">
26 lines
498 B
Go
26 lines
498 B
Go
// +build go1.8
|
|
|
|
// Copyright 2018 Gin Core Team. All rights reserved.
|
|
// Use of this source code is governed by a MIT style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package gin
|
|
|
|
import (
|
|
"net/http"
|
|
)
|
|
|
|
// ResponseWriter ...
|
|
type ResponseWriter interface {
|
|
responseWriterBase
|
|
// get the http.Pusher for server push
|
|
Pusher() http.Pusher
|
|
}
|
|
|
|
func (w *responseWriter) Pusher() (pusher http.Pusher) {
|
|
if pusher, ok := w.ResponseWriter.(http.Pusher); ok {
|
|
return pusher
|
|
}
|
|
return nil
|
|
}
|