MQTTnet是一个高性能的基于.NET的通信库。
这里是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中触发的
发布于 2019-07-05 20:23:51
此托管客户端正在使用内部线程处理消息。因此,您必须等待几毫秒才能让线程处理排队的项目。
https://stackoverflow.com/questions/51266609
复制相似问题