1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| client
package main
import ( "context" "fmt" example "github.com/go-micro/examples/helloworld/proto" "go-micro.dev/v4" "go-micro.dev/v4/client" "go-micro.dev/v4/metadata" )
func main() { service := micro.NewService() service.Init()
fmt.Println("\n--- Call example ---") for i := 0; i < 10; i++ { call(i, service.Client()) } }
func call(i int, c client.Client) { // Create new request to service go.micro.srv.example, method Example.Call req := c.NewRequest("helloworld", "Greeter.Hello", &example.Request{ Name: "John", })
// create context with metadata ctx := metadata.NewContext(context.Background(), map[string]string{ "X-User-Id": "john", "X-From-Id": "script", })
rsp := &example.Response{}
// Call service if err := c.Call(ctx, req, rsp); err != nil { fmt.Println("call err: ", err, rsp) return }
fmt.Println("Call:", i, "rsp:", rsp.Greeting) }
|