All checks were successful
Pack and Push NuGet Package / publish (push) Successful in 43s
60 lines
2.1 KiB
C#
60 lines
2.1 KiB
C#
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}.");
|
|
}
|
|
}
|
|
}
|