func UpgradeHTTP(r *http.Request, w http.ResponseWriter) (*Stream, error) {
hj, ok := w.(http.Hijacker)
if !ok {
return nil, ErrNotHijacker
}
_, bw, err := hj.Hijack()
if err != nil {
retu rn nil, err
}
httpWriteResponseUpgrade(bw.Writer)
if err := bw.Flush(); err != nil {
return nil, err
}
return &Stream{bw: bw}, nil
}
Inside the UpgradeHTTP
58