const grpc = require("@grpc/grpc-js"); | |
const protoLoader = require("@grpc/proto-loader"); | |
const path = require("path"); | |
const getgRPCConnection = (session) => { | |
return new Promise((resolve, reject) => { | |
protoLoader | |
.load(path.join(__dirname, "text_to_speech.proto"), { | |
keepCase: true, | |
longs: String, | |
enums: String, | |
defaults: true, | |
oneofs: true, | |
}) | |
.then((packageDefinition) => { | |
const textToSpeechProto = grpc.loadPackageDefinition(packageDefinition).texttospeech; | |
const client = new textToSpeechProto.TextToSpeechService( | |
"localhost:8081", | |
grpc.credentials.createInsecure() | |
); | |
session.client = client; | |
const channel = session.client.getChannel(); | |
session.channel = channel; | |
console.log("Made connection"); | |
session.client = client; | |
const call = client.ProcessText(); | |
resolve(call); | |
}) | |
.catch((error) => { | |
session.client = null; | |
console.error("Error loading proto file:", error); | |
reject(new Error("Error in making gRPC Connection.")); | |
}); | |
}); | |
}; | |
module.exports = { getgRPCConnection }; |