diff --git a/client.js b/client.js new file mode 100644 index 0000000..e940178 --- /dev/null +++ b/client.js @@ -0,0 +1,27 @@ +import { credentials, loadPackageDefinition } from "@grpc/grpc-js"; +import { loadSync } from "@grpc/proto-loader"; + +// Ler as definições do protobuffer +const tasksDefs = loadSync("./tasks.proto"); +const tasksProto = loadPackageDefinition(tasksDefs); + +const clientGRPC = new tasksProto.TaskService('127.0.0.1:5050', credentials.createInsecure()); + +clientGRPC.findAll({}, (err, tasks) => { + if (err){ + console.log(err); + return; + } + + console.log(tasks) +}); + +const obj = {id: 2, title: 'picolo'} +clientGRPC.insertOne(obj, (err, task) => { + if (err){ + console.log(err); + return; + } + + console.log(task) +}) \ No newline at end of file diff --git a/server.js b/server.js index 130001a..2bcf5a9 100644 --- a/server.js +++ b/server.js @@ -14,7 +14,13 @@ const grpcServer = new Server(); grpcServer.addService(tasksProto.TaskService.service, { findAll: (call, callBack) => { callBack(null, { tasks: tasks }) - } + }, + + insertOne: (call, callBack) => { + const obj = call.request + tasks.push(obj) + callBack(null, obj) + } }) const serverAddress = '0.0.0.0:5050'; diff --git a/tasks.proto b/tasks.proto index bcbadbb..54abf64 100644 --- a/tasks.proto +++ b/tasks.proto @@ -4,6 +4,7 @@ syntax = "proto3"; // Métodos que serão invocados remotamente service TaskService { rpc FindAll( Empty ) returns ( TaskList ); + rpc InsertOne( Task ) returns ( Task ); } // Mensagem (Message)