2 回答
TA贡献1873条经验 获得超9个赞
无需将ServeMux(gw) 作为处理程序传递给 mux var,您只需将 ListenAndServe 传递给返回的gw变量即可。
// Register endpoints here
gw, err := routes.RegisterEndpoints(ctx, c, r)
if err != nil {
return err
}
fmt.Println("Listening localhost:8080...")
return http.ListenAndServe(fmt.Sprintf("%s:%d", c.Gateway.Host, c.Gateway.Port), gw)
在RegisterEndpoints函数中,端点参数应该是你的host:port,api端点应该在proto文件的google api注释中提供。
err = protos.RegisterUserCenterHandlerFromEndpoint(ctx, mux, fmt.Sprintf("%s:%d", c.Gateway.Host, c.Gateway.Port), dialOpts)
if err != nil {
return nil, err
}
err = protos.RegisterSsoHandlerFromEndpoint(ctx, mux, fmt.Sprintf("%s:%d", c.Gateway.Host, c.Gateway.Port), dialOpts)
if err != nil {
return nil, err
}
TA贡献2011条经验 获得超2个赞
我附加grpc.WithBlock()
到grpc.DialOption
,然后可以通过grpc-gateway
now 访问所有服务。
如下所示:
dialOpts := []grpc.DialOption{grpc.WithBalancerName("round_robin"), grpc.WithInsecure(), grpc.WithBlock()}
- 2 回答
- 0 关注
- 148 浏览
添加回答
举报