【发布时间】:2014-01-21 21:20:59
【问题描述】:
我开始使用 Mqtt,但我很难处理不可靠的网络。 我正在使用 Paho Java 客户端(在 groovy 中)向远处的 Mosquitto Broker 发布消息。
有没有办法,当代理无法访问时,让 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() }
谢谢
【问题讨论】: