client.go 748 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package main
  2. import (
  3. "context"
  4. "flag"
  5. "fmt"
  6. "log"
  7. "time"
  8. "zero/core/conf"
  9. "zero/example/rpc/remote/unary"
  10. "zero/rpcx"
  11. )
  12. var configFile = flag.String("f", "config.json", "the config file")
  13. func main() {
  14. flag.Parse()
  15. var c rpcx.RpcClientConf
  16. conf.MustLoad(*configFile, &c)
  17. client := rpcx.MustNewClient(c)
  18. ticker := time.NewTicker(time.Millisecond * 500)
  19. defer ticker.Stop()
  20. for {
  21. select {
  22. case <-ticker.C:
  23. conn, ok := client.Next()
  24. if !ok {
  25. log.Fatal("no server")
  26. }
  27. greet := unary.NewGreeterClient(conn)
  28. resp, err := greet.Greet(context.Background(), &unary.Request{
  29. Name: "kevin",
  30. })
  31. if err != nil {
  32. fmt.Println("X", err.Error())
  33. } else {
  34. fmt.Println("=>", resp.Greet)
  35. }
  36. }
  37. }
  38. }