У меня есть брокер mqtt в приложении для Android.Я могу подключиться к нему из моего nodeMCU (microPython) и публиковать и проверять сообщения.
Я создал приложение для Android с помощью Xamarin.Формы и я создаем MQTT-клиент следующим образом:
IMqttClient client;
string topic = "test/msg";
var configuration = new MqttConfiguration();
this.client = await MqttClient.CreateAsync("192.168.110.51", configuration);
this.client.Disconnected += (o, e) => Debug($"disconnection (at client level)! {e.Message} and {e.Reason} ");
var state = await client.ConnectAsync(new MqttClientCredentials(clientId: "tester"));
await client.SubscribeAsync(topic, MqttQualityOfService.AtLeastOnce);
client
.MessageStream
.Subscribe(msg => Debug($"Message received in topic"));
Я создал кнопку, которая делает это:
var msg = new MqttApplicationMessage(topic, Encoding.UTF8.GetBytes("HELO"));
await client.PublishAsync(msg, MqttQualityOfService.AtLeastOnce);
Затем я тестирую всю среду, и бывает, что когда я публикую изXamarin Я могу читать HELO на MCU, но не с Xamarin (который подписан на канал), и если я публикуюсь с узла MCU, я могу читать с другого узла MCU, но НЕ с Xamarin.
Я пытался подписаться на "#", чтобы что-то слушать, так или иначе, ничего не появилось.
Любое предложение ??
ОБНОВЛЕНИЕ 1: Я протестировал с MQTT.fx, и я могу читать все сообщения, выводимые как с nodeMCU (python), так и с Phone (Xamarin), и я также могу публиковать сообщения, и nodeMCU (Python) будет получать их, пока Xamarin будетне замечаю :(