1、新建Asp.net Core Web Mvc项目
?2、Nuget包下载安装
Grpc.Net.Client Google.ProtoBuf Grpc.Tools
3、新建Protos文件夹,复制之前文章Grpc服务器的greet.proto文件
syntax = "proto3";
option csharp_namespace = "MyGrpcWeb";
package MyGrpc;
// The greeting service definition.
service TestGrpc {
// Sends a greeting
rpc TestSay (TestRequest) returns (TestReply);
rpc StreamingFromServer(ExampleRequest) returns (stream ExampleResponse);
rpc StreamingFromClient(stream ExampleRequest) returns (ExampleResponse);
rpc StreamingBothWays(stream ExampleRequest) returns (stream ExampleResponse);
}
// The request message containing the user's name.
message TestRequest {
string name = 1;
}
// The response message containing the greetings.
message TestReply {
string message = 1;
}
message ExampleRequest{
int32 pageIndex=1;
int32 pageSize=2;
bool isDescending=3;
}
message ExampleResponse{
string name=1;
string sex=2;
}
修改WebApplication1.csproj 文件,添加以下内容
<ItemGroup>
<Protobuf Include="Protos\greet.proto" GrpcServices="Client" />
</ItemGroup>
4、修改HomeController.cs
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
private readonly TestGrpc.TestGrpcClient _testGrpcClient;
private readonly GrpcChannel _channel;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
_channel = GrpcChannel.ForAddress("http://localhost:5000");
_testGrpcClient = new TestGrpc.TestGrpcClient(_channel);
}
public async Task<IActionResult> IndexAsync()
{
var ret = await _testGrpcClient.TestSayAsync(new TestRequest { Name = "MyAspNetCoreMvc" });
string msg = ret.Message;
ViewData["GrpcMsg"] = msg;
return View();
}
public IActionResult Privacy()
{
return View();
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
5、修改Index.cshtml
@{
ViewData["Title"] = "Home Page";
}
<div class="text-center">
<h1 class="display-4">Welcome</h1>
<h2>发送消息的用户:@ViewData["GrpcMsg"] </h2>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
6、修改launchSettings.json
{
"profiles": {
"WebApplication1": {
"commandName": "Project",
"dotnetRunMessages": "true",
"launchBrowser": true,
"applicationUrl": "http://localhost:5002",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
?或者修改appsettings.json文件
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"Urls": "http://localhost:5002",
"AllowedHosts": "*"
}
|