good morning!!!!

Skip to content
Snippets Groups Projects
codecs.go 669 B
Newer Older
a's avatar
a committed
package codecs

import (
a's avatar
a committed
	"gfx.cafe/open/jrpc/contrib/codecs/http"
a's avatar
a committed
	"gfx.cafe/open/jrpc/contrib/codecs/inproc"
a's avatar
a committed
	"gfx.cafe/open/jrpc/contrib/codecs/websocket"
a's avatar
a committed
	"gfx.cafe/open/jrpc/pkg/server"

	gohttp "net/http"
a's avatar
a committed
)

var NewInProc = inproc.NewCodec
a's avatar
a committed
var WebsocketHandler = websocket.WebsocketHandler
var HttpHandler = http.HttpHandler
a's avatar
a committed

var HttpWebsocketHandler = func(srv *server.Server, origins []string) gohttp.Handler {
	cwss := WebsocketHandler(srv, origins)
	chttp := HttpHandler(srv)
	return gohttp.HandlerFunc(func(w gohttp.ResponseWriter, r *gohttp.Request) {
		if r.Header.Get("upgrade") != "" {
			cwss.ServeHTTP(w, r)
			return
		}
		chttp.ServeHTTP(w, r)
	})
}