gRPC .NET Core跨平台学习
来源:互联网 发布:mac 电脑免费翻墙软件 编辑:程序博客网 时间:2024/06/05 17:56
前些天发布gRPC C# 学习,在.NET Framework 中使用gRPC ,今天来学习 .NET Core gRPC。
gRPC 的.NET Core 包在NuGet 上发布了,结合.NET Core 实现gRPC 完美跨平台。
本篇主要讲解 .NET Core 版gRPC客户端运行在Ubuntu系统上,与局域网内的服务端通信。
下面我们来正式开始。
在之前的代码基础开发.NET Core版。
本文运行环境:
服务端:WIN10 x64
客户端:Ubuntu 14.04
添加.NET Core版gRPC Client
首先我们打开之前的gRPCDemo 代码,GitHub:https://github.com/linezero/Blog/tree/master/gRPCDemo 。
添加一个.NET Core 控制台应用 gRPCNETCoreClient
然后在 gRPCNETCoreClient 项目上添加引用:
Install-Package Grpc -Pre
移植传统类库至.NET Core类库
安装好Grpc 以后我们就可以来移植类库了,这里我们首先创建一个gRPCNETCoreDemo Class Library。
新建好以后我们将 project.json 文件更改为如下:
{
"version": "1.0.0-*",
"frameworks": {
"net452": {
"dependencies": {
"Grpc": "1.0.0",
"Grpc.Core": "1.0.0",
"Google.Protobuf": "3.0.0",
"System.Interactive.Async": "3.0.0"
}
},
"netstandard1.6": {
"imports": "dnxcore50",
"dependencies": {
"NETStandard.Library": "1.6.0",
"Grpc": "1.0.1-pre1",
"Grpc.Core": "1.0.1-pre1",
"Google.Protobuf": "3.1.0",
"System.Interactive.Async": "3.1.0-rc"
}
}
}
}
这样类库就能支持.NET Framework 4.5.2 以及 .NET Core。
这里我省略了生成代码,直接将gRPCDemo 中的类复制过来。然后gRPCNETCoreClient 添加gRPCNETCoreDemo 引用。
gRPCNETCoreClient 中Program.cs 添加如下代码,基本上和上篇代码一致,新增了控制台编码输出格式。
public class Program {
public static void Main(string[] args) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); Channel channel = new Channel("127.0.0.1:9007", ChannelCredentials.Insecure); var client = new gRPC.gRPCClient(channel); var reply = client.SayHello(new HelloRequest { Name = "LineZero .NET Core Client" }); Console.WriteLine("来自" + reply.Message); channel.ShutdownAsync().Wait(); Console.WriteLine("任意键退出..."); Console.ReadKey(); } }
代码编写好以后,我们来执行gRPCServer ,然后使用dotnet run 执行 gRPCNETCoreClient。
成功通信,证明支持.NET Core。
发布至Ubuntu系统运行
下面将gRPCNETCoreClient 发布至Ubuntu系统跨平台运行。
代码绑定ip需要稍作调整。
查看本地ip 是多少,将gRPCServer 中的localhost 改成本地ip ,并将 Client的127.0.0.1 也改成本地ip。
发布 gRPCNETCoreClient
dotnet publish
将发布后的目录复制到 Ubuntu 系统。
下面先在本地启动Server ,然后在Ubuntu系统执行Client 。
成功在Ubuntu 系统上通信,这里服务端是运行在本地,客户端是在另外一台机器上。
相关文章:
谷歌发布的首款基于HTTP/2和protobuf的RPC框架:GRPC
C#中使用gRPC
Google高性能RPC框架gRPC 1.0.0发布
原文地址:http://www.cnblogs.com/linezero/p/grpcnetcore.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
- gRPC .NET Core跨平台学习
- .NET Core 使用 grpc 实现微服务
- 跨平台的.NET Core
- .NET 使用 .NET Core 跨平台运行
- .NET Core下使用gRpc公开服务(SSL/TLS)
- .NET Core下使用gRpc公开服务(SSL/TLS)
- asp net core 跨平台初体验
- .NET Core 跨平台发布(dotnet publish)
- 学习GRPC
- .NET Core跨平台:使用.NET Core开发一个初心源商城总括
- 跨平台.NET Core--微软开源方向
- ASP.NET Core之跨平台的实时性能监控
- 在Docker中运行asp.net core 跨平台应用程序
- ASP.NET Core之跨平台的实时性能监控
- 如何利用.NET Core搭建跨平台的控制台应用程序
- .NET Core跨平台图形处理库ImageSharp
- 拥抱.NET Core,如何开发一个跨平台类库
- 拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc
- TypeScript 2.0 已发布
- Redis集群~StackExchange.Redis(10月6号版1.1.608.0)连接Twemproxy支持Auth指令了
- .Net开源微型ORM框架测评
- 搭建分布式 ASP.NET Core Web
- Windows Server 2016提供Docker原生运行的企业级支持
- gRPC .NET Core跨平台学习
- .NET Core中使用Razor模板引擎
- 应用工具 .NET Portability Analyzer 分析迁移dotnet core
- .Net Core及.Net Standard主要概念回顾
- .NET CoreCLR开发人员指南(上)
- Lind.DDD.RedisClient~对StackExchange.Redis调用者的封装及多路复用技术
- ASP.NET Core 启动方式(Hosting)
- mt2503[SAT](STK)类问题抓取log的 filter设置
- 10月15日 2016中国开源年会期待您的参与