Asp.net 为什么活动订阅服务器只获取最后发布的消息

Asp.net 为什么活动订阅服务器只获取最后发布的消息,asp.net,mqtt,mosquitto,paho,m2m,Asp.net,Mqtt,Mosquitto,Paho,M2m,M2mqtt合并到我的asp.netmvc项目中。同步订阅信息时遇到问题。 当一个特定主题上发布了多个客户端时,客户端可以轻松订阅它们 假设在一种情况下,当发布消息发生时,客户机处于关闭/脱机状态,当他还活着时,则只获取最后一条发布的消息,而不是所有发布的消息。 怎么办?这是MQTT上的问题吗?活动客户端如何获取所有已发布的消息 通过以下语法使用代理的M2mqtt连接 public static MqttClient SmartHomeMQTT { get; set; } SmartHo

M2mqtt合并到我的asp.netmvc项目中。同步订阅信息时遇到问题。 当一个特定主题上发布了多个客户端时,客户端可以轻松订阅它们

假设在一种情况下,当发布消息发生时,客户机处于关闭/脱机状态,当他还活着时,则只获取最后一条发布的消息,而不是所有发布的消息。 怎么办?这是MQTT上的问题吗?活动客户端如何获取所有已发布的消息

通过以下语法使用代理的M2mqtt连接

 public static MqttClient SmartHomeMQTT { get; set; }

  SmartHomeMQTT = new MqttClient(brokerAddress, MqttSettings.MQTT_BROKER_DEFAULT_SSL_PORT, true, new X509Certificate(Resource.ca), null, MqttSslProtocols.TLSv1_2, client_RemoteCertificateValidationCallback);
  SmartHomeMQTT.Connect("6ea592c5-4b2f-481a-bb0a-eccbe8579d14", "####", "####", false, 3600);

**注意:**对于clean_session属性,Connect方法参数4设置为false,但它不起作用。

要确保订阅者接收所有消息,即使是脱机时发布的消息(称为消息持久性),您需要执行以下操作:

  • 确保订阅服务器中的“清除会话”已关闭
  • 确保每个订阅服务器使用唯一的客户端ID
  • 使用1或2的QoS

  • 您不会说您正在使用哪个MQTT服务器,但您需要确保服务器实现也支持它。

    查看、回答和评论。尝试将
    clean_session
    标志设置为false,在重新连接时使用相同的客户端id,使用QoS 1或2发布消息。感谢您的回复。正如你所说,我使用了下面的语法,但它不起作用。请检查我更新的问题描述