ws/upgrader/public.go

34 lines
555 B
Go

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
}