diff --git a/context/getting-started.md b/context/getting-started.md index 9104567..f75d19a 100644 --- a/context/getting-started.md +++ b/context/getting-started.md @@ -119,7 +119,7 @@ require "async/http/server" require "async/http/endpoint" endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051") -server = Async::HTTP::Server.for(endpoint, dispatcher) +server = Async::HTTP::Server.new(dispatcher, endpoint) Async do server.run @@ -192,23 +192,25 @@ class GreeterService < Async::GRPC::Service end Async do - # Setup server + # Setup server endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051") dispatcher = Async::GRPC::Dispatcher.new dispatcher.register(GreeterService.new(GreeterInterface, "hello.Greeter")) - server = Async::HTTP::Server.for(endpoint, dispatcher) + server = Async::HTTP::Server.new(dispatcher, endpoint) + server_task = server.run - # Setup client - client_endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051") + # Setup client (gRPC requires HTTP/2): + client_endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051", protocol: Async::HTTP::Protocol::HTTP2) http_client = Async::HTTP::Client.new(client_endpoint) client = Async::GRPC::Client.new(http_client) stub = client.stub(GreeterInterface, "hello.Greeter") - # Make a call + # Make a call request = Hello::HelloRequest.new(name: "World") response = stub.say_hello(request) puts response.message # => "Hello, World!" - - server.run +ensure + client&.close + server_task&.stop end ``` diff --git a/guides/getting-started/readme.md b/guides/getting-started/readme.md index 9104567..f75d19a 100644 --- a/guides/getting-started/readme.md +++ b/guides/getting-started/readme.md @@ -119,7 +119,7 @@ require "async/http/server" require "async/http/endpoint" endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051") -server = Async::HTTP::Server.for(endpoint, dispatcher) +server = Async::HTTP::Server.new(dispatcher, endpoint) Async do server.run @@ -192,23 +192,25 @@ class GreeterService < Async::GRPC::Service end Async do - # Setup server + # Setup server endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051") dispatcher = Async::GRPC::Dispatcher.new dispatcher.register(GreeterService.new(GreeterInterface, "hello.Greeter")) - server = Async::HTTP::Server.for(endpoint, dispatcher) + server = Async::HTTP::Server.new(dispatcher, endpoint) + server_task = server.run - # Setup client - client_endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051") + # Setup client (gRPC requires HTTP/2): + client_endpoint = Async::HTTP::Endpoint.parse("http://localhost:50051", protocol: Async::HTTP::Protocol::HTTP2) http_client = Async::HTTP::Client.new(client_endpoint) client = Async::GRPC::Client.new(http_client) stub = client.stub(GreeterInterface, "hello.Greeter") - # Make a call + # Make a call request = Hello::HelloRequest.new(name: "World") response = stub.say_hello(request) puts response.message # => "Hello, World!" - - server.run +ensure + client&.close + server_task&.stop end ``` diff --git a/lib/async/grpc/dispatcher.rb b/lib/async/grpc/dispatcher.rb index a334251..65168a6 100644 --- a/lib/async/grpc/dispatcher.rb +++ b/lib/async/grpc/dispatcher.rb @@ -27,7 +27,7 @@ module GRPC # dispatcher.register(GreeterService.new(GreeterInterface, "hello.Greeter")) # dispatcher.register(WorldService.new(WorldInterface, "world.Greeter")) # - # server = Async::HTTP::Server.for(endpoint, dispatcher) + # server = Async::HTTP::Server.new(dispatcher, endpoint) class Dispatcher < Protocol::GRPC::Middleware # Initialize the dispatcher. # @parameter app [#call | Nil] The next middleware in the chain diff --git a/lib/async/grpc/service.rb b/lib/async/grpc/service.rb index b9ef7bc..30ecf48 100644 --- a/lib/async/grpc/service.rb +++ b/lib/async/grpc/service.rb @@ -34,7 +34,7 @@ module GRPC # # Register with dispatcher: # dispatcher = Dispatcher.new # dispatcher.register(GreeterService.new(GreeterInterface, "hello.Greeter")) - # server = Async::HTTP::Server.for(endpoint, dispatcher) + # server = Async::HTTP::Server.new(dispatcher, endpoint) class Service # Initialize a new service instance. # @parameter interface_class [Class] The interface class (subclass of Protocol::GRPC::Interface)