Внешний сервер grpc с приватным ключом и Go

Как подключиться к внешнему серверу grpc через go ? В гугле найти информацию не могу, перерыл кучу ресурсов , помогите( Нужно подключиться к серверу и написать тесты методов


Ответы (1 шт):

Автор решения: Senior Pomidor

для начала укажем куда нужно подключиться, все проверки на ошибку я опустил.

conn, err := grpc.Dial("127.0.0.1:1234")

есть возможности конфигурировать gRPC клиент с помощью ServerOptions. напрмер, grpc.Dial("127.0.0.1:1234", grpc.WithInsecure(), grpc.WithBlock())

Но это не все. Нам нужно работчать через протобаф. для этого зарегистрируем наш протобаф pb "google.golang.org/grpc/examples/helloworld/helloworld"

c := pb.NewGreeterClient(conn)

теперь мы можем отправить серверу, который реализует этот протобаф, сообщение.

ctx, cancel := context.WithTimeout(context.Background(), time.Second)
r, err := c.SayHello(ctx, &pb.HelloRequest{Name: name})
if err != nil {
    log.Fatalf("could not greet: %v", err)
}
log.Printf("Greeting: %s", r.GetMessage())

методы SayHello, HelloRequest, GetMessage реализованы в самом протобафе.

подробнее про это можно почитать в официальной документации. примеры кода тут

→ Ссылка