# README
Usage
default
import (
"context"
"fmt"
"google.golang.org/grpc"
pb "google.golang.org/grpc/examples/helloworld/helloworld"
)
func main() {
var addr, name string
conn, _ := grpc.Dial(addr, grpc.WithInsecure())
defer conn.Close()
client := pb.NewGreeterClient(conn)
r, _ := client.SayHello(context.Background(), &pb.HelloRequest{Name: name})
fmt.Println(r.GetMessage())
}
with grpcp
import (
"context"
"fmt"
"google.golang.org/grpc"
pb "google.golang.org/grpc/examples/helloworld/helloworld"
)
func main() {
var addr, name string
conn, _ := grpcp.GetConn(addr) // get conn with grpcp default pool
// defer conn.Close() // no close, close will disconnect
client := pb.NewGreeterClient(conn)
r, _ := client.SayHello(context.Background(), &pb.HelloRequest{Name: name})
fmt.Println(r.GetMessage())
}
custom dial function
import (
"context"
"fmt"
"github.com/leeson1995/go-common/grpcp"
"google.golang.org/grpc"
pb "google.golang.org/grpc/examples/helloworld/helloworld"
)
func main() {
var addr, name string
pool := grpcp.New(func(addr string) (*grpc.ClientConn, error) {
return grpc.Dial(
addr,
grpc.WithInsecure(),
)
})
conn, _ := pool.GetConn(addr)
client := pb.NewGreeterClient(conn)
r, _ := client.SayHello(context.Background(), &pb.HelloRequest{Name: name})
fmt.Println(r.GetMessage())
}
# Functions
Alives current live connections from default pool.
CustomReadyCheck custom ready check function.
Dial force to create new connection from default pool, this operation will close old connection!.
GetConn create or get an existing connection from default pool.
New initialization ConnectionTracker.
SetCheckReadyTimeout custom checkReadyTimeout.
SetHeartbeatInterval custom heartbeatInterval.
SetTimeout custom timeout.
# Structs
ConnectionTracker keep connections and maintain their status.
# Type aliases
DialFunc dial function.
ReadyCheckFunc check conn is ready function.
TrackerOption initialization options.