gRPC在c#中的使用(服务端)
2016-10-14 16:09
211 查看
在 Visual Studio Community 中"新建项目"->"类库",名称填写"Greeter",解决方案名称填写"helloworld",如下图:
删除自动生成的类“class1.cs”:
新建一个文件名称为"helloworld.proto",内容如下:
开启"程序包管理器控制台",位置如下图:
使用下面命令引入gRPC包:
在"helloworld"目录下执行如下命令:
执行结果如下图:
右键单击项目名称“Greeter”,把自动生成的两个文件"HelloworldGrpc.cs"和"Helloworld.cs" 加入项目中:
在根项目中右击添加新项目:
选择“控制台应用程序”,项目名称命名为“GreeterServer”:
在程序包管理器控制台把默认项目改为“GreeterServer”
在控制台执行如下命令导入gRPC动态库:
在“GreeterServer”里引入项目“Greeter”
在“GreeterServer”下的“Program.cs”填写如下代码:
把“GreeterServer”设为启动项目,如下图:
单击“启动”按钮,启动gRPC服务端:
结果如下图:
删除自动生成的类“class1.cs”:
新建一个文件名称为"helloworld.proto",内容如下:
syntax = "proto3"; package helloworld; // 服务端定义 service Greeter { // 服务端返馈信息方法 rpc SayHello (HelloRequest) returns (HelloReply) {} } // 包含用户名的请求信息 message HelloRequest { string name = 1; } // 服务端响应信息 message HelloReply { string message = 1; }
开启"程序包管理器控制台",位置如下图:
使用下面命令引入gRPC包:
Install-Package Grpc
Install-Package Google.Protobuf
Install-Package Grpc.Tools
在"helloworld"目录下执行如下命令:
packages\Grpc.Tools.1.0.0\tools\windows_x64\protoc.exe -IGreeter --csharp_out Greeter Greeter/helloworld.proto --grpc_out Greeter --plugin=protoc-gen-grpc=packages\Grpc.Tools.1.0.0\tools\windows_x64\grpc_csharp_plugin.exe
执行结果如下图:
右键单击项目名称“Greeter”,把自动生成的两个文件"HelloworldGrpc.cs"和"Helloworld.cs" 加入项目中:
在根项目中右击添加新项目:
选择“控制台应用程序”,项目名称命名为“GreeterServer”:
在程序包管理器控制台把默认项目改为“GreeterServer”
在控制台执行如下命令导入gRPC动态库:
Install-Package Grpc
在“GreeterServer”里引入项目“Greeter”
在“GreeterServer”下的“Program.cs”填写如下代码:
using System; using System.Threading.Tasks; using Grpc.Core; using Helloworld; namespace GreeterServer { class GreeterImpl : Greeter.GreeterBase { // 服务端RPC的SayHello操作方法 public override Task<HelloReply> SayHello(HelloRequest request, ServerCallContext context) { return Task.FromResult(new HelloReply { Message = "你好 " + request.Name }); } } class Program { const int Port = 50051; public static void Main(string[] args) { Server server = new Server { Services = { Greeter.BindService(new GreeterImpl()) }, Ports = { new ServerPort("localhost", Port, ServerCredentials.Insecure) } }; server.Start(); Console.WriteLine("Greeter server listening on port " + Port); Console.WriteLine("Press any key to stop the server..."); Console.ReadKey(); server.ShutdownAsync().Wait(); } } }
把“GreeterServer”设为启动项目,如下图:
单击“启动”按钮,启动gRPC服务端:
结果如下图:
相关文章推荐
- C#编写Windows服务程序 (服务端),client使用 消息队列 实现淘宝 订单全链路效果
- C#使用Thrift简介,C#客户端和Java服务端相互交互
- ffmpeg音频转换程序不能用于IIS服务端使用问题(C#开发)
- 使用极光推送(www.jpush.cn)向安卓手机推送消息【服务端向客户端主送推送】C#语言
- C#使用PHP服务端的Web Service通信实例
- 将FluorineFx作为客户端,使用C#调用ASPX服务端Flash Remoting
- grpc(3):使用 golang 开发 grpc 服务端和客户端
- C#中使用gRPC
- 使用极光推送(www.jpush.cn)向安卓手机推送消息【服务端向客户端主送推送】C#语言
- 初识google多语言通信框架gRPC系列(三)C#中使用gRPC
- 蛙蛙推荐:c#使用winsock api实现同步Socket服务端
- C#使用PHP服务端的Web Service通信实例
- [C#]使用WebClient上传文件并同时Post表单数据字段到服务端
- 蛙蛙推荐:c#使用winsock api实现同步Socket服务端
- 使用QHttp与C#编写的服务端交互(编译环境mingw)
- C# 使用 grpc
- RPC学习--C#使用Thrift简介,C#客户端和Java服务端相互交互
- 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
- C#编写Windows服务程序 (服务端),客户端使用 消息队列 实现淘宝 订单全链路效果
- C#中使用gRPC