xamarin mqtt不订阅消息

时间:2019-02-19 14:42:27

标签: xamarin.forms mqtt

我在Android APP中有一个mqtt经纪人。我可以从我的nodeMCU(microPython)连接到它,然后发布和检查消息。

我使用Xamarin创建了一个android应用。表单,然后创建一个像这样的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发布时,我可以在MCU上读取HELO,但不能从Xamarin(已订阅该频道)中读取,如果从nodeMCU发布,我可以从中读取其他nodeMCU,但不是来自Xamarin。

我尝试订阅“#”以收听任何内容,无论如何都没有出现。

任何建议?

更新1: 我使用MQTT.fx进行了测试,可以读取从nodeMCU(python)和Phone(Xamarin)输出的所有消息,也可以发布消息,nodeMCU(Python)会收到它们,而Xamarin不会注意到:(

0 个答案:

没有答案