2015-11-09 12 views
0

Я уже работал с 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" 
+0

Нельзя использовать MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE. Вместо этого попробуйте использовать MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE. Возможно, QoS 2 не поддерживается (например, AWS IoT не поддерживает его). –

ответ

1

Я не думаю, что в настоящее время MqttDotNet поддерживаетс. я мог бы предложить, чтобы использовать мой клиент M2Mqtt и нашли документацию на официальном веб-сайте здесь: https://m2mqtt.wordpress.com/

Клиент M2Mqtt доступен на NuGet в пакете тоже здесь: https://www.nuget.org/packages/M2Mqtt/

Паоло.

+0

спасибо за u r advise –

+0

но с помощью m2mqtt, не получал никаких опубликованных сообщений –

+0

может быть более точным, пожалуйста? – ppatierno

Смежные вопросы