syntax = "proto3";
package helloworld;
// The greeter service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
Slide 29
Slide 29 text
class GreeterServer < Helloworld::Greeter::Service
def sayhello(helloreq)
Helloworld::HelloReply.new(
message: "Hello #{hello_req.name}”
)
end
end
Server (Ruby)
Slide 30
Slide 30 text
def main
s = GRPC::RpcServer.new
s.add_http2_port('0.0.0.0:50051')
s.handle(GreeterServer)
s.run
end
Slide 31
Slide 31 text
var client = new hello_proto.Greeter(‘localhost:50051');
client.sayHello({name: user}, function(err, response) {
console.log('Greeting:', response.message);
});
Client (JavaScript)
Slide 32
Slide 32 text
// The RPC service that controls the chat bot.
service Robot {
// Instructs the bot to join a room.
rpc Join (JoinRequest) returns (JoinResponse);
// Listens to a stream of incoming events.
rpc Listen (ListenRequest) returns (stream Event);
// Instructs the bot to part from a room.
rpc Part (PartRequest) returns (PartResponse);
// Sends one or more messages to a user or room.
rpc SendMessages (SendMessagesRequest) returns
(SendMessagesResponse);
}