Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

173
Visualizações
Obtener una respuesta vacía de la llamada gRPC

Tengo un servidor y un cliente gRPC simples. El servidor y el cliente funcionan bien (supongo que ya que estoy recibiendo una respuesta y ningún error). Sin embargo, la respuesta está vacía y no tengo idea de por qué.

Aquí está el message.proto

 syntax = "proto3"; message Msg { int32 timeStamp = 1; string text = 2; string sender = 3; } message Empty {} service MsgService{ rpc AllMessages (Empty) returns (MsgList) {} } message MsgList { repeated Msg msgs = 1; }

y server.js

 const grpc = require('@grpc/grpc-js'); const PROTO_PATH = "./message.proto"; const protoLoader = require('@grpc/proto-loader'); const options = { keepCase: true, longs: String, enums: String, defaults: true, oneofs: true } const packageDefinition = protoLoader.loadSync(PROTO_PATH, options); const msgProto = grpc.loadPackageDefinition(packageDefinition); const server = new grpc.Server(); let savedMessages = [ { timeStamp: 1, text: "lorem", sender: "alex" }, { timeStamp: 2, text: "ipsum", sender: "bob" }, { timeStamp: 3, text: "dolor", sender: "alex" }, { timeStamp: 4, text: "net", sender: "bob" } ]; server.addService(msgProto.MsgService.service, { AllMessages: (_, callback) => { callback(null, savedMessages); } }) server.bindAsync("127.0.0.1:50051", grpc.ServerCredentials.createInsecure(), (err, port) => { if (err) { console.log(err); } console.log(port); server.start(); console.log("Server running at 127.0.0.1:50051"); })

y client.js

 const grpc = require('@grpc/grpc-js'); const protoLoader = require('@grpc/proto-loader'); const PROTO_PATH = "./message.proto"; const options = { keepCase: true, longs: String, enums: String, defaults: true, oneofs: true, }; var packageDefinition = protoLoader.loadSync(PROTO_PATH, options); const MsgService = grpc.loadPackageDefinition(packageDefinition).MsgService; const client = new MsgService( "localhost:50051", grpc.credentials.createInsecure() ); client.AllMessages({}, (err, msg) => { // console.log(err); if (err) throw err; console.log(msg); // console.log(msg); })

y la respuesta que estoy recibiendo

 { msgs: [] }

Si ayuda, estaba siguiendo esta publicación de blog https://daily.dev/blog/build-a-grpc-service-in-nodejs

Gracias por adelantado.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Su definición de mensaje MsgList es un mensaje con un solo campo llamado msgs que tiene el tipo repeated Msg . El objeto que envíe debe tener esa forma. Por lo tanto, debe ser un objeto con un solo campo llamado msgs que tenga una matriz de objetos que coincidan con el formato de la definición del mensaje Msg . Su variable savedMessages no es eso, es solo una matriz, por lo que enviarla no obtiene el resultado que desea.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda