本文介绍 gRPC 四种模式…
gRPC 模式
gRPC主要有4种请求 / 响应模式,分别是:
简单模式 (Simple RPC)
这种模式最为传统,即客户端发起一次请求,服务端响应一个数据,类似Http请求。服务端数据流模式 (Server-side streaming RPC)
这种模式是客户端发起一次请求,服务端返回一段连续的数据流。典型的例子是客户端向服务端发送一个股票代码,服务端就把该股票的实时数据源源不断的返回给客户端。客户端数据流模式 (Client-side streaming RPC)
与服务端数据流模式相反,这次是客户端源源不断的向服务端发送数据流,而在发送结束后,由服务端返回一个响应。典型的例子是物联网终端向服务器报送数据。双向数据流模式 (Bidirectional streaming RPC)
顾名思义,这是客户端和服务端都可以向对方发送数据流,这个时候双方的数据可以同时互相发送,也就是可以实现实时交互。典型的例子是聊天机器人。
本章先使用 简单模式 (Simple RPC)
实现一个 Hello World 例子,
下一章则使用 双向数据流模式 (Bidirectional streaming RPC)
来实现一个聊天室例子。
简单模式 (Simple RPC) 例子
新建需要的文件:
1 | Chat.sln |
chat.proto
文件内容:
1 | syntax = "proto3"; |
Chat.Server.ChatRoomImpl.cs
文件内容:
1 | using System; |
Chat.Server.Program.cs
文件内容:
1 | using System; |
Chat.Client.Program.cs
文件内容:
1 | using System; |
先运行服务端:1
> xxx\Chat\Chat.Server\bin\Debug\netcoreapp2.1> dotnet Chat.Server.dll
再运行客户端:1
> xxx\Chat\Chat.Client\bin\Debug\netcoreapp2.1> dotnet Chat.Client.dll
体验一下来自人工智能的回复:
1 | 在吗? |
结束语
貌似都贴代码,也不讲解概念,机制什么的(以后有机会再补,哇咔咔)。
下一章则是本入门教程第三个目标:聊天室。