package server import ( "context" "fmt" "net/http" "user-srv/config" pb "user-srv/pb/api" "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/sirupsen/logrus" "google.golang.org/grpc" ) func StartGwServer() error { conn, err := grpc.DialContext( context.Background(), fmt.Sprintf("%v:%v", config.GrpcAddress, config.GrpcPort), //grpc 动态地址 grpc.WithBlock(), grpc.WithInsecure(), ) if err != nil { logrus.WithFields(logrus.Fields{ "func": "ContactGroupDetail", }).Warnf("grpc.DialContext: %s", err) return err } mux := runtime.NewServeMux() err = pb.RegisterUserServiceHandler(context.Background(), mux, conn) if err != nil { logrus.WithFields(logrus.Fields{ "func": "ContactGroupDetail", }).Warnf("pb.RegisterUserServiceHandler: %s", err) return err } // 启动网关 server := &http.Server{ Addr: config.GatewayAddress, Handler: mux, } //日志 logrus.WithFields(logrus.Fields{ "func": "ContactGroupDetail", }).Infof("Start gRPC Gateway Server on: %s", config.GatewayAddress) err = server.ListenAndServe() if err != nil { logrus.WithFields(logrus.Fields{ "func": "ContactGroupDetail", }).Warnf("server.ListenAndServe: %s", err) return err } return nil }