feat: test grpc client reconnects
Ensure that we don't receive GOAWAY after 30 minutes of repeated calls to our server
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user