1#!/usr/bin/env ruby 2 3# Copyright 2015 gRPC authors. 4# 5# Licensed under the Apache License, Version 2.0 (the "License"); 6# you may not use this file except in compliance with the License. 7# You may obtain a copy of the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an "AS IS" BASIS, 13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14# See the License for the specific language governing permissions and 15# limitations under the License. 16 17# Sample gRPC server that implements the Greeter::Helloworld service. 18# 19# Usage: $ path/to/greeter_server.rb 20 21this_dir = File.expand_path(File.dirname(__FILE__)) 22lib_dir = File.join(this_dir, 'lib') 23$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir) 24 25require 'grpc' 26require 'helloworld_services_pb' 27 28# GreeterServer is simple server that implements the Helloworld Greeter server. 29class GreeterServer < Helloworld::Greeter::Service 30 # say_hello implements the SayHello rpc method. 31 def say_hello(hello_req, _unused_call) 32 Helloworld::HelloReply.new(message: "Hello #{hello_req.name}") 33 end 34end 35 36# main starts an RpcServer that receives requests to GreeterServer at the sample 37# server port. 38def main 39 s = GRPC::RpcServer.new 40 s.add_http2_port('0.0.0.0:50051', :this_port_is_insecure) 41 s.handle(GreeterServer) 42 s.run_till_terminated 43end 44 45main 46