学习helloworld
server用.net
client有.net的控制台 和 unity
server端 直接使用vs2022创建(需自行看有无装asp.net哦),搜索gPRC,使用6.0吧,创建工程后直接F5跑起来,服务端到此完成
.net控制台client,创建新的控制台,使用NuGet,然后导入server端的Protos文件夹
学习helloWrold就先手动copy下目录咯.然后在vs上把其加入ItemGroup中去
编辑client的代码咯
using Grpc.Net.Client;
using server;
using (var channel = GrpcChannel.ForAddress("https://localhost:5001"))//这个端口要看服务端跑起来的输出日志上的端口哦
{
var client = new Greeter.GreeterClient(channel);
var reply = client.SayHello(new HelloRequest()
{
Name = "客户端 sayHeloName"
});
var msg = reply.Message;
Console.WriteLine(msg);
}
把服务器跑起来.然后在client跑起来 就能看到log了
server用.net
client有.net的控制台就跑通了
现用Unity连起来,就比较麻烦.这里需要看gitHub
https://github.com/doctorseus/grpc-dotnet-unity
第一种方案:把人家的Plugins直接copy到自己的目录
第二种方案就是在自己的server用NuGet安装人家对应的dll,再用everyThing搜索对应含有NuGet目录的dll_copy到自己plugins目录,举一个例子
这里要装挺多东西的,建议使用第一种方案.还要把人家GRPCBestHttpHandler.cs,PushPullStream.cs,ServerStreamHttpContent.cs,copy到自己项目中去
再去gitHub的把Best HTTP也导入自己的unity项目中去.
然后去自己Server端项目中,右键greet.proto,重新生成下.生成后把Greet.cs和GreetGRPC.cs copy到unity项目中去 (右键server在磁盘上用everyThing找)
到此unity的准备工作 都完成了
建新脚本 TestGRPC.cs
using Grpc.Net.Client;
using Grpc.Net.Extensions;
using server;
using UnityEngine;
public class TestGRPC : MonoBehaviour
{
async void Start()
{
Debug.LogError("---开始---");
var channel = GrpcChannel.ForAddress("https://localhost:5001", new GrpcChannelOptions()
{
HttpHandler = new GRPCBestHttpHandler()
});
var client = new Greeter.GreeterClient(channel);
var res = await client.SayHelloAsync(new HelloRequest()
{
Name = "造就helloworld"
});
Debug.LogError(res.Message);
Debug.LogError("---结束---");
}
}
把TestGRPC.cs 挂在场景中去,把server跑起来…然后在Unity,跑起来.就能看到通信了
https://github.com/SendSi/gRPC_client_server