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 關注
- 183 瀏覽
添加回答
舉報