【发布时间】:2018-07-10 13:29:47
【问题描述】:
MQTTnet 是一个高性能 .NET 库,用于基于 MQTT 的通信。
这是 GitHub 链接。 https://github.com/chkr1011/MQTTnet 。它提供了一个 MQTT 客户端和一个 MQTT 服务器(代理)。该实现基于来自http://mqtt.org/ 的文档。
这就是我创建managed MQTT 客户端的方式。
链接在这里
https://github.com/chkr1011/MQTTnet/wiki/ManagedClient
// Setup and start a managed MQTT client.
var options = new ManagedMqttClientOptionsBuilder()
.WithAutoReconnectDelay(TimeSpan.FromSeconds(5))
.WithClientOptions(new MqttClientOptionsBuilder()
.WithClientId("Client1")
.WithTcpServer("broker.hivemq.com")
.WithTls().Build())
.Build();
this.mqttClient = new MqttFactory().CreateManagedMqttClient(new MqttNetLogger("IDMQTTManagedPublisher"));
await this.mqttClient.SubscribeAsync(new TopicFilterBuilder().WithTopic("RequestTopic").Build());
SubscribeToApplicationMessageReceived();
await this.mqttClient.StartAsync(options);
订阅ApplicationMessageProcessed活动
private void SubscribeToApplicationMessageProcessed()
{
this.mqttClient.ApplicationMessageProcessed += (s, e) =>
{
};
}
消息发送代码
var messagePayload = new MqttApplicationMessageBuilder()
.WithTopic("RequestTopic")
.WithPayload(message)
.WithExactlyOnceQoS()
.WithRetainFlag()
.Build();
await mqttClient.PublishAsync(messagePayload);
但是ApplicationMessageProcessed 事件没有在managed MQTTnet client 中触发
【问题讨论】:
-
更新了问题!