The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#) https://grpc.io/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Jan Tattermusch 171eeb552a make hostname configurable 5 years ago
..
Greeter add commandline parsing 5 years ago
GreeterClient add commandline parsing 5 years ago
GreeterServer make hostname configurable 5 years ago
Greeter.sln add C# xds example 5 years ago
README.md add commandline parsing 5 years ago

README.md

gRPC Hostname example (C#)

BACKGROUND

This is a version of the helloworld example with a server whose response includes its hostname. It also supports health and reflection services. This makes it a good server to test infrastructure, such as XDS load balancing.

PREREQUISITES

You can also build the solution Greeter.sln using Visual Studio 2019, but it's not a requirement.

RUN THE EXAMPLE

First, build and run the server, then verify the server is running and check the server is behaving as expected (more on that below).

cd GreeterServer
dotnet run

After configuring your xDS server to track the gRPC server we just started, create a bootstrap file as desribed in gRFC A27:

{
  xds_servers": [
    {
      "server_uri": <string containing URI of xds server>,
      "channel_creds": [
        {
          "type": <string containing channel cred type>,
          "config": <JSON object containing config for the type>
        }
      ]
    }
  ],
  "node": <JSON form of Node proto>
}

Then point the GRPC_XDS_BOOTSTRAP environment variable at the bootstrap file:

export GRPC_XDS_BOOTSTRAP=/etc/xds-bootstrap.json

Finally, run your client:

cd GreeterClient
dotnet run --server xds-experimental:///my-backend

VERIFYING THE SERVER

grpcurl can be used to test your server. If you don't have it, install grpcurl. This will allow you to manually test the service.

Exercise your server's application-layer service:

> grpcurl --plaintext -d '{"name": "you"}' localhost:50051
{
  "message": "Hello you from jtatt.muc.corp.google.com!"
}

Make sure that all of your server's services are available via reflection:

> grpcurl --plaintext localhost:50051 list
grpc.health.v1.Health
grpc.reflection.v1alpha.ServerReflection
helloworld.Greeter

Make sure that your services are reporting healthy:

> grpcurl --plaintext -d '{"service": "helloworld.Greeter"}' localhost:50051
grpc.health.v1.Health/Check
{
  "status": "SERVING"
}

> grpcurl --plaintext -d '{"service": ""}' localhost:50051
grpc.health.v1.Health/Check
{
  "status": "SERVING"
}