response_wrapper.go
func (w *ResponseWrapper) Hijack() (net.Conn, *bufio.ReadWriter, error) {
	if hijacker, ok := w.writer.(http.Hijacker); ok {
		c, rw, err := hijacker.Hijack()

		if err == nil {
			w.Hijacked = true
		}

		return c, rw, err
	}

	return nil, nil, errors.New("Wrapped ResponseWriter is not a Hijacker")
}
func (w *ResponseWrapper) Hijack() (net.Conn, *bufio.ReadWriter, error) {
	if hijacker, ok := w.writer.(http.Hijacker); ok {
		c, rw, err := hijacker.Hijack()

		if err == nil {
			w.Hijacked = true
		}

		return c, rw, err
	}

	return nil, nil, errors.New("Wrapped ResponseWriter is not a Hijacker")
}
// Hijack tries to use the original http.ResponseWriter for hijacking. If the
// original writer doesn't implement http.Hijacker, it returns an error.