Sobes.tech
Junior — Middle

Como implementar o envio de mensagens num serviço gRPC?

sobes.tech IA

Resposta da IA

Para enviar uma mensagem a um serviço gRPC em Go, precisa de:

  1. Gerar código Go a partir do ficheiro .proto que descreve o serviço e as mensagens.
  2. Criar um cliente gRPC e ligar-se ao servidor.
  3. Chamar o método necessário do serviço, enviando a mensagem.

Exemplo:

package main

import (
    "context"
    "log"
    "time"

    "google.golang.org/grpc"
    pb "path/to/generated/proto/package"
)

func main() {
    conn, err := grpc.Dial("localhost:50051", grpc.WithInsecure())
    if err != nil {
        log.Fatalf("Não foi possível conectar: %v", err)
    }
    defer conn.Close()

    client := pb.NewYourServiceClient(conn)

    ctx, cancel := context.WithTimeout(context.Background(), time.Second)
    defer cancel()

    req := &pb.YourRequest{Message: "Olá, gRPC!"}
    resp, err := client.YourMethod(ctx, req)
    if err != nil {
        log.Fatalf("Não foi possível enviar a mensagem: %v", err)
    }

    log.Printf("Resposta: %s", resp.GetReply())
}

Aqui, YourServiceClient e YourRequest são tipos gerados a partir do proto, e YourMethod é o método RPC do serviço.