// Pre-requisites
using System;
using System.Threading.Tasks;
using PipServices3.Commons.Config;
using PipServices3.Messaging.Queues;
using PipServices3.Mqtt.Queues;
// Component creation and configuration
var queue = new MqttMessageQueue();
queue.Configure(ConfigParams.FromTuples(
"topic", "mytopic", // set topic
"connection.protocol", "mqtt",
"connection.host", "localhost",
"connection.port", 1883,
"options.autosubscribe", true, // autosubscription on the topic
"options.serialize_envelope", true // converts object into musquitto values
));
// Connection
await queue.OpenAsync("123");
// Send a message
await queue.SendAsync("123", new MessageEnvelope(null, "mymessage", "ABC1234"));
// Receive a message
var message = await queue.ReceiveAsync("123", 10000);
Console.WriteLine(message.GetMessageAsString()); // Prints 'ABC1234'
// Close the connection
await queue.CloseAsync("123");