overflow_gateway_webapp/server/server_handlers.go
crusader 55f4636b8a ing
2017-11-28 20:08:46 +09:00

53 lines
1.4 KiB
Go

package server
import (
cwf "git.loafle.net/commons_go/websocket_fasthttp"
oogws "git.loafle.net/overflow/overflow_gateway_websocket/server"
"github.com/valyala/fasthttp"
)
func NewServerHandler() ServerHandler {
sh := &ServerHandlers{}
sh.ServerHandler = oogws.NewServerHandler()
return sh
}
type ServerHandlers struct {
oogws.ServerHandler
}
// Init invoked before the server is started
// If you override ths method, must call
func (sh *ServerHandlers) Init(serverCTX cwf.ServerContext) error {
if err := sh.ServerHandler.Init(serverCTX); nil != err {
return err
}
return nil
}
func (sh *ServerHandlers) OnStart(serverCTX cwf.ServerContext) {
sh.ServerHandler.OnStart(serverCTX)
}
func (sh *ServerHandlers) CheckOrigin(ctx *fasthttp.RequestCtx) bool {
if origin := string(ctx.Request.Header.Peek("Origin")); origin != "" {
ctx.Response.Header.Set("Access-Control-Allow-Origin", origin)
if string(ctx.Method()) == "OPTIONS" && string(ctx.Request.Header.Peek("Access-Control-Request-Method")) != "" {
ctx.Response.Header.Set("Access-Control-Allow-Headers", "Content-Type, Accept")
ctx.Response.Header.Set("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE")
}
}
return true
}
func (sh *ServerHandlers) OnStop(serverCTX cwf.ServerContext) {
sh.ServerHandler.OnStop(serverCTX)
}
func (sh *ServerHandlers) Validate() {
sh.ServerHandler.Validate()
}