Ответ
Для отправки сообщения в gRPC сервис нужно создать клиент, подключиться к серверу и вызвать нужный метод. Пример:
// Подключение к серверу
conn, err := grpc.Dial("localhost:50051", grpc.WithInsecure())
if err != nil {
log.Fatalf("did not connect: %v", err)
}
defer conn.Close()
// Создание клиента
client := pb.NewYourServiceClient(conn)
// Подготовка сообщения
req := &pb.RequestMessage{
Field1: "value",
Field2: 123,
}
// Отправка сообщения
resp, err := client.YourMethod(context.Background(), req)
if err != nil {
log.Fatalf("could not call method: %v", err)
}
log.Printf("Response: %v", resp)
Ключевые моменты:
- Используйте
grpc.Dialдля подключения - Создайте клиент через сгенерированный конструктор (
NewYourServiceClient) - Подготовьте сообщение согласно proto-контракту
- Вызовите метод с контекстом и сообщением
- Обработайте возможные ошибки
Для безопасного подключения используйте grpc.WithTransportCredentials(credentials.NewClientTLSFromCert(...)) вместо WithInsecure в production.