在 C#和ASP.NET Core中创建 gRPC 客户端和服务器

这篇具有很好参考价值的文章主要介绍了在 C#和ASP.NET Core中创建 gRPC 客户端和服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关于gRPC和Google protobuf

gRPC 是一种可以跨语言运行的现代高性能远程过程调用 (RPC) 框架。gRPC 实际上已经成为 RPC 框架的行业标准,Google 内外的组织都在使用它来从微服务到计算的“最后一英里”(移动、网络和物联网)的强大用例。
gRPC是一个高性能的开源的通用RPC框架,由Google公司开发,支持常用的C++、Java、Python、C#/.Net、Go、Node、Dart、Kotlin、Object-C、PHP、Ruby等语言,采用protobuf作为数据交换格式,并且采用C++开发,支持Windows 、Linux、macOS跨平台开发。对于跨语言服务调用非常方便,只要使用protobuf定义接口协议,然后按照gRPC语言SDK调用即可。比如我们使用C++对环保数采仪器设备通过串口或者网口传送的数据协议如Modbus协议、HJ212协议、或者厂商自定义的协议进行解析之后,将数据存放到本地数据库,这个时候我们如何将C++的数据传给前端网页呢?
这个时候可以使用多种方式。比如通过数据库、HTTP协议、WebSocket协议、RPC远程过程调用等方式。
我之前做环保的时候,采用C++和环保硬件设备打交道,通过C++后台程序将数采仪数据解析之后存入到本地Sqlite数据库中(分表分页存储),然后由于展示的网页比较简单,只是用网页展示当前站点的数据,前端采用ElementUI和Vue.js,后端采用Node.js。另外,C++后台写了一套RPC服务端接口,Node.js通过RPC客户端调用C++的后台RPC服务,双方之间通过Google Protobuf数据协议交互。

在 gRPC 中,客户端应用程序可以像本地对象一样直接调用不同机器上的服务器应用程序上的方法,从而使您更轻松地创建分布式应用程序和服务。与许多 RPC 系统一样,gRPC 基于定义服务的思想,指定可以远程调用的方法及其参数和返回类型。在服务器端,服务器实现这个接口并运行一个gRPC服务器来处理客户端调用。在客户端,客户端有一个存根(在某些语言中简称为客户端),它提供与服务器相同的方法。
在 C#和ASP.NET Core中创建 gRPC 客户端和服务器,C# WinForm和WPF,编程语言学习,c#,asp.net,服务器,gRPC
gRPC 客户端和服务器可以在各种环境中运行和相互通信(从 Google 内部的服务器到您自己的桌面),并且可以用 gRPC 支持的任何语言编写。例如,您可以使用 Java 轻松创建 gRPC 服务器,并使用 Go、Python 或 Ruby 编写客户端。此外,最新的 Google API 将具有其接口的 gRPC 版本,让您可以轻松地将 Google 功能构建到您的应用程序中。

在 C#和ASP.NET Core中创建 gRPC 客户端和服务器

在 C#和ASP.NET Core中创建 gRPC 客户端和服务器十分简单,可以参考微软官方的几篇文章:

  • 使用 C# 的 gRPC 服务
  • 使用 .NET 客户端调用 gRPC 服务
  • 教程:在 ASP.NET Core 中创建 gRPC 客户端和服务器
    在 C#和ASP.NET Core中创建 gRPC 客户端和服务器,C# WinForm和WPF,编程语言学习,c#,asp.net,服务器,gRPC

在 C#和ASP.NET Core中创建 gRPC 客户端和服务器,C# WinForm和WPF,编程语言学习,c#,asp.net,服务器,gRPC

对应在VS2022中分别运行GRPC服务端和客户端的SayHello示例接口调用如下图所示:
在 C#和ASP.NET Core中创建 gRPC 客户端和服务器,C# WinForm和WPF,编程语言学习,c#,asp.net,服务器,gRPC

  • C# / .NET

C# 中的 gRPC 简介视频教程

另外,油管上面有来自UP主IAmTimCorey于2019年9月30日创作的一篇关于C#中使用GRPC的视频,地址为:Intro to gRPC in C# - How To Get Started
相关示例代码我已经上传到我的Github仓库,地址为:https://github.com/ccf19881030/GrpcGreeterDemo
在 C#和ASP.NET Core中创建 gRPC 客户端和服务器,C# WinForm和WPF,编程语言学习,c#,asp.net,服务器,gRPC
我们git clone https://github.com/ccf19881030/GrpcGreeterDemo.git 源代码到本地后,使用VS2022打开GrpcGreeterDemo.sln解决方案,里面有GrpcGreeterGrpcGreeterClient两个项目,分别是基于ASP.Net Core的gRPC服务端程序和基于.NetCore控制台的gRPC客户端程序,我的VS2022使用的是.NetCore 7.0。如下图所示:
在 C#和ASP.NET Core中创建 gRPC 客户端和服务器,C# WinForm和WPF,编程语言学习,c#,asp.net,服务器,gRPC
我们首选将GrpcGreeter gRPC服务端程序作为启动项目,然后运行,如下图所示:
在 C#和ASP.NET Core中创建 gRPC 客户端和服务器,C# WinForm和WPF,编程语言学习,c#,asp.net,服务器,gRPC
接着我们再将GrpcGreeterClient gRPC客户端作为启动项目,然后运行,结果如下图所示:
在 C#和ASP.NET Core中创建 gRPC 客户端和服务器,C# WinForm和WPF,编程语言学习,c#,asp.net,服务器,gRPC文章来源地址https://www.toymoban.com/news/detail-855862.html

参考资料

  • https://grpc.io/
  • Introduction to gRPC
  • gRPC-Quick start
  • https://github.com/grpc/grpc The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
  • gRPC in 5 minutes | Eric Anderson & Ivy Zhuang, Google
  • Protocol Buffers
  • Protocol Buffers - Google’s data interchange format
  • 使用 ASP.NET Core 的 gRPC 服务
  • Intro to gRPC in C# - How To Get Started
  • https://github.com/ccf19881030/GrpcGreeterDemo
  • 将本地托管代码添加到 GitHub

到了这里,关于在 C#和ASP.NET Core中创建 gRPC 客户端和服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • .net core WebAPI 获取客户端IP的地址

    1、写个扩展方法在控制器里面: 注:不能创建外部类,否则会报错,HttpContext必须是和带有继承ControllerBase的类一起才行 1.在Startup.cs文件里注入服务: 2、去控制器里面写入:

    2024年02月03日
    浏览(36)
  • C#实现简单TCP服务器和客户端网络编程

    在C#中进行网络编程涉及许多类和命名空间,用于创建和管理网络连接、传输数据等。下面是一些主要涉及的类和命名空间: System.Net 命名空间: 这个命名空间提供了大部分网络编程所需的类,包括: IPAddress :用于表示IP地址。 IPEndPoint :表示IP地址和端口号的组合。 Socke

    2024年02月11日
    浏览(49)
  • 【服务器】ASP.Net Core(C#)创建Web站点

    简单几步实现本地ASP.Net.Core web 站点结合cpolar内网穿透工具实现远程访问 1. 创建站点 *环境搭建,这边测试,使用.NET 6.0 SDK,可以点击跳转到官网下载,下载后安装即可. 安装完成后,进入到某个文件夹,打开powershell执行下面命令,创建新的 Web 应用,名称叫:aspnetcoreapp 2. 运行站点 信任开

    2024年02月11日
    浏览(39)
  • C#搭建Socket服务器与客户端,助你快速入门(极简版)

    一、服务器的搭建 新建一个C#控制台应用,用于搭建服务器。 注:serverManager除了接收消息,也可以发送消息。基本除了监听,其他活它都干。 二、客户端的搭建 再建一个C#控制台应用,用于搭建客户端。 搭建好之后,先运行服务器端, 再运行客户端。 一个简单的服务器和

    2024年02月09日
    浏览(34)
  • C#知识点-13(进程、多线程、使用Socket实现服务器与客户端通信)

    进程 定义:每一个正在运行的应用程序,都是一个进程  进程不等于正在运行的应用程序。而是为应用程序的运行构建一个运行环境 多线程 这段代码在执行完成之前,程序会被卡死(不能操作程序,包括关闭窗口)。因为我们程序在做一些耗时操作的时候,如果主线程去执

    2024年02月22日
    浏览(45)
  • C# Socket通信从入门到精通(16)——单个同步UDP服务器监听多个客户端C#代码实现

    我们在开发UDP通信程序时,有时候我们也需要开发UDP服务器程序,这个服务器只需要和一个客户端实现通信,比如这篇博文C# Socket通信从入门到精通(15)——单个同步UDP服务器监听一个客户端C#代码实现,但是在实际项目中有的时候需要和多个客户端进行通信,这时和一个客

    2024年01月22日
    浏览(41)
  • C# Socket通信从入门到精通(15)——单个同步UDP服务器监听一个客户端C#代码实现

    我们在开发UDP通信程序时,除了开发UDP客户端程序,有时候我们也需要开发UDP服务器程序,这在实际项目中是经常会遇到的,所以说掌握UDP服务器程序的开发是一项必备的技能,尤其在上位机软件开发领域,掌握UDP服务器程序的开发是走向高级工程师的必经之路,也是面试必

    2024年02月03日
    浏览(38)
  • C#与西门子PLC1500的ModbusTcp服务器通信4--搭建ModbusTcp客户端

    客户端可以是一个程序或一个设备,这里我以C#WINFORM程序来实现客户机与PLC的Modbustcp服务器通信,开发环境是VS2019,.NET Framework版本是4.7.2  创建类库   编写C#各种类的转换库,该库由我提供,不用操心,文章最后提供。 项目引入这个类库  找到项目,找到引用,右键“管理

    2024年02月11日
    浏览(30)
  • .netcore grpc客户端工厂及依赖注入使用

    gRPC 与  HttpClientFactory  的集成提供了一种创建 gRPC 客户端的集中方式。 可以通过依赖包Grpc.Net.ClientFactory中的AddGrpcClient进行gRPC客户端依赖注入 AddGrpcClient函数提供了许多配置项用于处理一些其他事项;例如AOP、重试策略等 创建一个WPF客户端 在App.xaml.cs代码类里重写OnStartup方

    2024年02月12日
    浏览(22)
  • Nacos源码 (5) Grpc服务端和客户端

    Nacos 2.x在服务端与客户端直接增加了GRPC通信方式,本文通过2.0.2版本源码,简单分析GRPC通信方式: 服务器启动 客户端连接 客户端心跳 服务器监控检查 api/src/main/proto/nacos_grpc_service.proto文件: 文件定义了通信层的service和message结构,业务层请求响应的序列化和反序列化是Na

    2024年02月10日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包