Implementation carried over from v1.
All checks were successful
Pack and Push NuGet Package / publish (push) Successful in 43s
All checks were successful
Pack and Push NuGet Package / publish (push) Successful in 43s
This commit is contained in:
@ -0,0 +1,14 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\MessengerApi.QueryClient\MessengerApi.QueryClient.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
59
code/MessengerApi.QueryClient.Example/Program.cs
Normal file
59
code/MessengerApi.QueryClient.Example/Program.cs
Normal file
@ -0,0 +1,59 @@
|
||||
using MessengerApi.Model;
|
||||
using MessengerApi.Model.Messages;
|
||||
using portaloggy;
|
||||
|
||||
namespace MessengerApi.Example
|
||||
{
|
||||
internal class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
var logger = new ConsoleLogger() { IsMessageSeverityColoringEnabled = true};
|
||||
var httpClient = new HttpClient();
|
||||
|
||||
// Client 1 will demonstrate querying approach.
|
||||
var client1 = new QueryClient(
|
||||
new Credentials(
|
||||
"aab8f7e9-ad13-4bf8-bb2e-0cd93d81adc0",
|
||||
"http://localhost:5259"),
|
||||
httpClient,
|
||||
logger);
|
||||
|
||||
// Client 2 is subscription client waiting for the queries.
|
||||
var client2 = new SubscriptionClient(
|
||||
new Credentials(
|
||||
"8f73f683-7cb3-40df-998e-6e604aef0e53",
|
||||
"http://localhost:5259"),
|
||||
httpClient,
|
||||
logger);
|
||||
|
||||
var user1 = Guid.Parse("f696442b-e8dc-4074-b34f-94bcece8e74b");
|
||||
var user2 = Guid.Parse("15d97720-f5b7-47aa-9c1a-71f98b0b9248");
|
||||
|
||||
// Subscribe client 2 to questions.
|
||||
var client2Subscription = client2.Subscribe("TEST");
|
||||
|
||||
client2Subscription.OnMessage += (s, m) =>
|
||||
{
|
||||
logger.Info($"Received subscribed message - {m.Payload}");
|
||||
client2.SendMessage(new OutboxMessage
|
||||
{
|
||||
ToUserId = m.Sender,
|
||||
Payload = "ANSWER",
|
||||
PayloadType = m.PayloadType
|
||||
});
|
||||
};
|
||||
|
||||
// Demonstrate query pipeline. Client 1 sends query and waits for response.
|
||||
// Client 2 is subscribed to those messages and will send an answer right away.
|
||||
var answer = client1.Query(new OutboxMessage
|
||||
{
|
||||
ToUserId = user2,
|
||||
PayloadType = "TEST",
|
||||
Payload = "QUESTION"
|
||||
}).GetAwaiter().GetResult();
|
||||
|
||||
logger.Info($"Received answer message to my query with payload: {answer.Payload}.");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user