github.com/micro/go-micro/examples@v0.0.0-20210105173217-bf4ab679e18b/client/codegen/codegen.go (about) 1 package main 2 3 import ( 4 "fmt" 5 6 "context" 7 example "github.com/micro/go-micro/examples/server/proto/example" 8 "github.com/micro/go-micro/v2/config/cmd" 9 ) 10 11 var ( 12 cl = example.NewExampleService("go.micro.srv.example", nil) 13 ) 14 15 func call(i int) { 16 rsp, err := cl.Call(context.Background(), &example.Request{Name: "John"}) 17 if err != nil { 18 fmt.Println("call err: ", err, rsp) 19 return 20 } 21 fmt.Println("Call:", i, "rsp:", rsp.Msg) 22 } 23 24 func stream(i int) { 25 stream, err := cl.Stream(context.Background(), &example.StreamingRequest{Count: int64(i)}) 26 if err != nil { 27 fmt.Println("err:", err) 28 return 29 } 30 for j := 0; j < i; j++ { 31 rsp, err := stream.Recv() 32 if err != nil { 33 fmt.Println("err:", err) 34 break 35 } 36 fmt.Println("Stream: rsp:", rsp.Count) 37 } 38 if err := stream.Close(); err != nil { 39 fmt.Println("stream close err:", err) 40 } 41 } 42 43 func pingPong(i int) { 44 stream, err := cl.PingPong(context.Background()) 45 if err != nil { 46 fmt.Println("err:", err) 47 return 48 } 49 for j := 0; j < i; j++ { 50 if err := stream.Send(&example.Ping{Stroke: int64(j)}); err != nil { 51 fmt.Println("err:", err) 52 return 53 } 54 rsp, err := stream.Recv() 55 if err != nil { 56 fmt.Println("recv err", err) 57 break 58 } 59 fmt.Printf("Sent ping %v got pong %v\n", j, rsp.Stroke) 60 } 61 if err := stream.Close(); err != nil { 62 fmt.Println("stream close err:", err) 63 } 64 } 65 66 func main() { 67 cmd.Init() 68 69 fmt.Println("\n--- Call example ---") 70 for i := 0; i < 10; i++ { 71 call(i) 72 } 73 74 fmt.Println("\n--- Streamer example ---") 75 stream(10) 76 77 fmt.Println("\n--- Ping Pong example ---") 78 pingPong(10) 79 }