接收离线消息mqtt

时间:2015-12-08 07:41:27

标签: mqtt mosquitto paho

我使用mosquitto作为经纪人和paho(python)作为客户。我正在尝试让订阅者接收离线消息。

为此我做了以下更改:

  • 已修复客户端ID
  • qos level 2

但是,订阅者仍然无法接收消息。

任何帮助?

谢谢, 拉胡

2 个答案:

答案 0 :(得分:13)

为了让您的客户端成为持久客户端并接收在脱机时发送给主题的消息,您需要满足以下条件:

  1. 修正了客户ID(正如您所做)
  2. 始终与clean_session = False连接
  3. 必须使用QoS> 0
  4. 进行订阅
  5. 发布的消息必须具有QoS> 0
  6. 我经常犯的错误是忘记了第3点和第4点中的任何一个,所以我发布QoS = 0或订阅QoS = 0,其中任何一个都会导致消息无法存储。

    您还可以查看from selenium import webdriver browser = webdriver.Chrome('/Users/xinmei/Documents/program/python/seleniumproject/ webdrivers/chromedriver') print("start") browser.get('http://www.yahoo.com') print("get") assert 'Yahoo!' in browser.title elem = browser.find_element_by_name('p') # Find the search box elem.send_keys('seleniumhq' + Keys.RETURN) browser.quit() 选项,告诉代理也存储QoS = 0消息。请注意,这是一个可能特定于mosquitto的实现细节。

答案 1 :(得分:1)

检查在将消息发布到主题时是否已将retain标志设置为true,使用retain = true,订阅该主题的新连接客户端将收到保留的消息。