INNER CODE UNIT · Go

gRPCAndHTTPFunc

apache/apisix · t/grpc_server_example/main.go:235

func gRPCAndHTTPFunc(grpcServer *grpc.Server) http.Handler {
	return h2c.NewHandler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		mux := http.NewServeMux()
		mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
			w.Write([]byte("hello http"))
		})

		if r.ProtoMajor == 2 && strings.Contains(r.Header.Get("Content-Type"), "application/grpc") {
			grpcServer.ServeHTTP(w, r)
		} else {
			mux.ServeHTTP(w, r)
		}
	}), &http2.Server{})
}

func main() {
	flag.Parse()

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…