我開始使用Mqtt,我很難處理一個不可靠的網絡。 我使用Paho Java客戶端(在Groovy中)將消息發佈給遠程的Mosquitto Broker。Mqtt Paho - 試圖發佈,而經紀人無法訪問
當代理不可達時,有沒有辦法讓Paho客戶端持久保留消息並自動重新連接到代理併發布本地存儲的消息?我是否必須親自處理所有事情,例如使用當地的經紀商?
這裏是我的客戶的建築規範
String persistenceDir = config['persistence-dir'] ?: System.getProperty('java.io.tmpdir') def persistence = new MqttDefaultFilePersistence(persistenceDir) client = new MqttAsyncClient(uri, clientId, persistence) client.setCallback(this) options = new MqttConnectOptions() if (config.password) { options.setPassword(config.password as char[]) options.setUserName(config.user) } options.setCleanSession(false) client.connect(options)
我的發佈代碼
def message = new MqttMessage(Json.encode(outgoingMessage).getBytes()) try { client?.connect(options) def topic = client.getTopic('processMsg') message.setQos(1) def token = topic.publish(message) if (client) { client.disconnect() }
感謝