deprecated_overflow_gateway.../server.go
crusader 67de428f46 ing
2017-08-24 18:24:38 +09:00

66 lines
1.1 KiB
Go

package overflow_gateway_websocket
import (
"log"
"git.loafle.net/overflow/overflow_gateway_websocket/websocket"
"github.com/valyala/fasthttp"
)
type ()
type Server interface {
ListenAndServe(addr string) error
}
type server struct {
o *Options
upgrader *websocket.Upgrader
}
func NewServer(o *Options) Server {
s := &server{
o: o.Validate(),
}
s.upgrader = &websocket.Upgrader{
ReadBufferSize: s.o.ReadBufferSize,
WriteBufferSize: s.o.WriteBufferSize,
HandshakeTimeout: s.o.HandshakeTimeout,
}
return s
}
func (s *server) onRequest(cb OnRequestFunc) {
}
func (s *server) onNotify(cb OnNotifyFunc) {
}
func (s *server) onPush(cb OnPushFunc) {
}
func (s *server) requestHandler(ctx *fasthttp.RequestCtx, c *websocket.Conn) {
}
func (s *server) connectionHandler(ctx *fasthttp.RequestCtx) {
s.upgrader.Upgrade(ctx, nil, func(conn *websocket.Conn, err error) {
if err != nil {
log.Print("upgrade:", err)
return
}
s.o.OnConnection(ctx, conn)
s.requestHandler(ctx, conn)
})
}
func (s *server) ListenAndServe(addr string) error {
return fasthttp.ListenAndServe(addr, s.connectionHandler)
}