RabbitRpc.Client
1.0.2
See the version list below for details.
dotnet add package RabbitRpc.Client --version 1.0.2
NuGet\Install-Package RabbitRpc.Client -Version 1.0.2
<PackageReference Include="RabbitRpc.Client" Version="1.0.2" />
<PackageVersion Include="RabbitRpc.Client" Version="1.0.2" />
<PackageReference Include="RabbitRpc.Client" />
paket add RabbitRpc.Client --version 1.0.2
#r "nuget: RabbitRpc.Client, 1.0.2"
#:package RabbitRpc.Client@1.0.2
#addin nuget:?package=RabbitRpc.Client&version=1.0.2
#tool nuget:?package=RabbitRpc.Client&version=1.0.2
RabbitRpc.Client
Клиентская часть RabbitMQ RPC для .NET 8. Предоставляет типизированные прокси: вы инжектите интерфейс контракта и вызываете методы как обычный сервис — запрос уходит в RabbitMQ и возвращает ответ от сервера.
Установка
dotnet add package RabbitRpc.Client
dotnet pack -c Release
Конфигурация
В appsettings.json добавьте секцию RabbitMqRpc:
{
"RabbitMqRpc": {
"HostName": "localhost",
"Port": 5672,
"VirtualHost": "/",
"UserName": "guest",
"Password": "guest",
"ClientProvidedName": "rabbit-rpc-client",
"PrefetchCount": 1
}
}
Использование
Определите интерфейс контракта (общий для клиента и сервера):
public interface IMathService
{
Task<int> AddAsync(int a, int b, CancellationToken ct = default);
}
Зарегистрируйте клиент и прокси в Program.cs:
using AsbtCore.Broker.Client;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRabbitRpcClientPackage(builder.Configuration);
builder.Services.AddRabbitRpcProxy<IMathService>(TimeSpan.FromSeconds(30));
Используйте прокси как обычный DI-сервис:
public class CalculatorController : ControllerBase
{
private readonly IMathService _math;
public CalculatorController(IMathService math) => _math = math;
[HttpGet("add")]
public Task<int> Add(int a, int b, CancellationToken ct)
=> _math.AddAsync(a, b, ct);
}
Параметр timeout у AddRabbitRpcProxy<T> задаёт таймаут ожидания ответа (по умолчанию — значение из настроек транспорта).
См. также
- RabbitRpc.Server — серверная часть для размещения обработчиков.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Hosting.Abstractions (>= 8.0.1)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 8.0.0)
- RabbitMQ.Client (>= 7.1.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.