package main import ( "context" "crypto/tls" "fmt" "log" "os" "os/signal" "syscall" "time" pbedge "github.com/talksik/grpc-client-test/genproto/helios/edge" "google.golang.org/grpc" "google.golang.org/grpc/credentials" ) func main() { // basic grpc client creds := credentials.NewTLS(&tls.Config{}) conn, err := grpc.Dial("xxxxx", grpc.WithTransportCredentials(creds)) if err != nil { log.Fatalf("Failed to connect: %v", err) } defer conn.Close() client := pbedge.NewAuthServiceClient(conn) ctx := context.Background() stop := make(chan os.Signal, 1) signal.Notify(stop, os.Interrupt, syscall.SIGTERM) for { select { case <-stop: fmt.Println("Interrupt received, stopping...") return default: // Your instruction here fmt.Println("calling test rpc...") response, err := client.SignOut(ctx, &pbedge.SignOutRequest{}) if err != nil { log.Fatalf("Error calling SayHello: %v", err) } log.Printf("received response: %v", response) time.Sleep(10 * time.Second) // Simulate work } } }