cosmos-sdk/server/grpc/grpc_web.go

26 lines
664 B
Go

package grpc
import (
"net/http"
"github.com/cosmos/cosmos-sdk/server/config"
"github.com/improbable-eng/grpc-web/go/grpcweb"
"google.golang.org/grpc"
)
// StartGRPCWeb starts a gRPC-Web server on the given address.
func StartGRPCWeb(grpcSrv *grpc.Server, config config.Config) (*http.Server, error) {
wrappedServer := grpcweb.WrapServer(grpcSrv)
handler := func(resp http.ResponseWriter, req *http.Request) {
wrappedServer.ServeHTTP(resp, req)
}
grpcWebSrv := &http.Server{
Addr: config.GRPCWeb.Address,
Handler: http.HandlerFunc(handler),
}
if err := grpcWebSrv.ListenAndServe(); err != nil {
return nil, err
}
return grpcWebSrv, nil
}