package upgrader import ( "git.xdrm.io/gws/internal/http/upgrade/response" "fmt" "git.xdrm.io/gws/internal/http/upgrade/request" "net" ) type T struct { req *request.T res *response.T } func Upgrade(s net.Conn) (*T, error) { /* (1) Create upgrder */ inst := new(T) /* (2) Parse request */ inst.req, _ = request.Parse(s) /* (3) Build response */ inst.res = inst.req.BuildResponse() /* (4) Write into socket */ _, err := inst.res.Send(s) if err != nil { return inst, fmt.Errorf("Socket write error: %s", err) } return inst, nil }