diff options
author | Jan Tattermusch <jtattermusch@google.com> | 2018-07-30 14:52:32 +0200 |
---|---|---|
committer | Jan Tattermusch <jtattermusch@google.com> | 2018-07-31 12:42:47 +0200 |
commit | 7ff80cfb5e4feed06152ca2c99f1888bb484908b (patch) | |
tree | db3e19926ed110a05973d617a9f376bcbe9b3a94 /examples/csharp/HelloworldXamarin/iOS/ViewController.cs | |
parent | da5452578a118ddcc8833be5baa36616846b449a (diff) |
use local server in XamarinHelloworld
Diffstat (limited to 'examples/csharp/HelloworldXamarin/iOS/ViewController.cs')
-rw-r--r-- | examples/csharp/HelloworldXamarin/iOS/ViewController.cs | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/examples/csharp/HelloworldXamarin/iOS/ViewController.cs b/examples/csharp/HelloworldXamarin/iOS/ViewController.cs index 33bb4a00e2..ba4618c018 100644 --- a/examples/csharp/HelloworldXamarin/iOS/ViewController.cs +++ b/examples/csharp/HelloworldXamarin/iOS/ViewController.cs @@ -1,4 +1,6 @@ using System; +using System.Threading.Tasks; + using Grpc.Core; using Helloworld; @@ -8,6 +10,7 @@ namespace HelloworldXamarin.iOS { public partial class ViewController : UIViewController { + const int Port = 50051; int count = 1; public ViewController(IntPtr handle) : base(handle) @@ -33,20 +36,38 @@ namespace HelloworldXamarin.iOS // Release any cached data, images, etc that aren't in use. } - private string SayHello() + private string SayHello() + { + Server server = new Server { + Services = { Greeter.BindService(new GreeterImpl()) }, + Ports = { new ServerPort("localhost", Port, ServerCredentials.Insecure) } + }; + server.Start(); + + Channel channel = new Channel("localhost:50051", ChannelCredentials.Insecure); + + var client = new Greeter.GreeterClient(channel); + string user = "Xamarin " + count; - // use loopback on host machine: https://developer.android.com/studio/run/emulator-networking - Channel channel = new Channel("10.0.2.2:50051", ChannelCredentials.Insecure); + var reply = client.SayHello(new HelloRequest { Name = user }); - var client = new Greeter.GreeterClient(channel); - string user = "Xamarin"; + channel.ShutdownAsync().Wait(); + server.ShutdownAsync().Wait(); - var reply = client.SayHello(new HelloRequest { Name = user }); + count++; + + return "Greeting: " + reply.Message; + } - channel.ShutdownAsync().Wait(); - return "Greeting: " + reply.Message; + class GreeterImpl : Greeter.GreeterBase + { + // Server side handler of the SayHello RPC + public override Task<HelloReply> SayHello(HelloRequest request, ServerCallContext context) + { + return Task.FromResult(new HelloReply { Message = "Hello " + request.Name }); } + } } } |