Я уже работал с mqtt в Java. Теперь мне нужно создать приложение C# для подписки и публикации сообщений mqtt.Mqtt опубликовать/подписаться с помощью C#
с использованием библиотеки MqttDotNet
IMqtt _client = MqttClientFactory.CreateClient(connectionString, clientId);
Что такое connectionString
?
использованием M2Mqtt библиотека
соединение удалось, но я не получал никаких опубликованных сообщений.
Это мой код:
class Program
{
static void Main(string[] args)
{
var client = new MqttClient(IPAddress.Parse("myTestIP"));
// register to message received
client.MqttMsgPublishReceived += client_MqttMsgPublishReceived;
var clientId = Guid.NewGuid().ToString();
client.Connect(clientId);
// subscribe to the topic "/home/temperature" with QoS 2
client.Subscribe(
new string[] {"testTopic"},
new byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE });
}
static void client_MqttMsgPublishReceived(
object sender, MqttMsgPublishEventArgs e)
{
// handle message received
Console.WriteLine("message=" + e.Message.ToString());
}
}
Это мое сообщение издательство Код:
mosquitto_pub -d -h testIp -t "testTopic" -m "haai"
Нельзя использовать MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE. Вместо этого попробуйте использовать MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE. Возможно, QoS 2 не поддерживается (например, AWS IoT не поддерживает его). –