diff --git a/server/gateway.go b/server/gateway.go index b3684eb..46988bd 100644 --- a/server/gateway.go +++ b/server/gateway.go @@ -27,11 +27,17 @@ func (s *Server) startGateway(network string, ln net.Listener) net.Listener { m := cmux.New(ln) rpcxLn := m.Match(rpcxPrefixByteMatcher()) - jsonrpc2Ln := m.Match(cmux.HTTP1HeaderField("X-JSONRPC-2.0", "true")) - httpLn := m.Match(cmux.HTTP1Fast()) - go s.startJSONRPC2(jsonrpc2Ln) - go s.startHTTP1APIGateway(httpLn) + if !s.DisableJSONRPC { + jsonrpc2Ln := m.Match(cmux.HTTP1HeaderField("X-JSONRPC-2.0", "true")) + go s.startJSONRPC2(jsonrpc2Ln) + } + + if !s.DisableHTTPGateway { + httpLn := m.Match(cmux.HTTP1Fast()) + go s.startHTTP1APIGateway(httpLn) + } + go m.Serve() return rpcxLn diff --git a/server/server.go b/server/server.go index 8aa16f8..b498b97 100644 --- a/server/server.go +++ b/server/server.go @@ -59,10 +59,12 @@ var ( // Server is rpcx server that use TCP or UDP. type Server struct { - ln net.Listener - readTimeout time.Duration - writeTimeout time.Duration - gatewayHTTPServer *http.Server + ln net.Listener + readTimeout time.Duration + writeTimeout time.Duration + gatewayHTTPServer *http.Server + DisableHTTPGateway bool // should disable http invoke or not. + DisableJSONRPC bool // should disable json rpc or not. serviceMapMu sync.RWMutex serviceMap map[string]*service