添加Grpc.Core和Grpc.Tool并编写相应proto

Signed-off-by: Eicy <im@crash.work>
This commit is contained in:
2024-12-18 01:43:20 +08:00
parent 685b8e406f
commit 1051517140
4 changed files with 65 additions and 1 deletions

32
API/BotServiceImpl.cs Normal file
View File

@@ -0,0 +1,32 @@
using Debugger;
using Grpc.Core;
using Lagrange.Core.Common.Interface.Api;
using Lagrange.Core.Message;
using Shrink.Login;
namespace Shrink.API;
public class BotServiceImpl : BotService.BotServiceBase
{
public override Task<DataResponse> SendData(DataRequest request, ServerCallContext context)
{
// 模拟向 QQ 机器人处理数据的逻辑
Console.WriteLine($"服务端接收到请求Code={request.Code}, Str1={request.Str1}, Str2={request.Str2}, Num={request.Num}");
// 假设调用你的 QQ 机器人方法(这里简化为打印消息)
string botResponse = $"QQ机器人已处理请求: {request.Str1} 和 {request.Str2}";
var chain = MessageBuilder.Friend(3209851541).Text($"Shrink已处理请求: {request.Str1} 和 {request.Str2}");
QrCode.Instance.Client.SendMessage(chain.Build());
var chain1 = MessageBuilder.Friend(3048536893).Text($"Shrink已处理请求: {request.Str1} 和 {request.Str2}");
QrCode.Instance.Client.SendMessage(chain1.Build());
var chain2 = MessageBuilder.Group(954600523).Text($"Shrink已处理请求: {request.Str1} 和 {request.Str2} 整数 {request.Num}");
QrCode.Instance.Client.SendMessage(chain2.Build());
// 返回响应
return Task.FromResult(new DataResponse
{
Message = botResponse,
Success = true
});
}
}

21
API/service.proto Normal file
View File

@@ -0,0 +1,21 @@
syntax = "proto3";
option csharp_namespace = "Debugger";
package Debugger;
service BotService {
rpc SendData (DataRequest) returns (DataResponse);
}
message DataRequest {
string code = 1;
string str1 = 2;
string str2 = 3;
int32 num = 4;
}
message DataResponse {
string message = 1;
bool success = 2;
}

View File

@@ -9,7 +9,12 @@
<ItemGroup>
<PackageReference Include="Google.Protobuf" Version="3.29.1" />
<PackageReference Include="Grpc.AspNetCore" Version="2.67.0" />
<PackageReference Include="Grpc.Core" Version="2.46.6" />
<PackageReference Include="Grpc.Net.Client" Version="2.67.0" />
<PackageReference Include="Grpc.Tools" Version="2.68.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Lagrange.Core" Version="0.3.1" />
<PackageReference Include="Mono.Cecil" Version="0.11.6" />
<PackageReference Include="SSH.NET" Version="2024.2.0" />
@@ -19,6 +24,10 @@
<Compile Remove="Service\**" />
</ItemGroup>
<ItemGroup>
<Protobuf Include="API/service.proto" GrpcServices="Server" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Remove="Service\**" />
</ItemGroup>

View File

@@ -0,0 +1,2 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ABotContext_002Ecs_002Fl_003AC_0021_003FUsers_003FASUS_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F4f0c6e06aea4324bd9b782d83aa3c4a451315453321fb61e5e19cda52c4df2_003FBotContext_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary>