Fixed issue #16 publish of will message with qos > 0
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
@GrabResolver(name='Paho', root='https://repo.eclipse.org/content/repositories/paho-releases/')
|
||||
//@Grab(group='org.eclipse.paho', module='org.eclipse.paho.client.mqttv3', version='1.0.1', ext='jar')
|
||||
@Grab(group='org.fusesource.mqtt-client', module='mqtt-client', version='1.10')
|
||||
|
||||
import org.fusesource.mqtt.client.BlockingConnection
|
||||
import org.fusesource.mqtt.client.MQTT
|
||||
import org.fusesource.mqtt.client.Message
|
||||
import org.fusesource.mqtt.client.QoS
|
||||
import org.fusesource.mqtt.client.Topic
|
||||
|
||||
String host = args.size() == 1 ? args[0] : "localhost"
|
||||
|
||||
MQTT mqttWill = new MQTT()
|
||||
mqttWill.setHost(host, 1883)
|
||||
mqttWill.setClientId("WillClient")
|
||||
mqttWill.setWillTopic("/willtopic")
|
||||
mqttWill.setWillMessage("Will message testment")
|
||||
//AT_MOST_ONCE,
|
||||
//AT_LEAST_ONCE,
|
||||
//EXACTLY_ONCE
|
||||
mqttWill.willQos = QoS.AT_LEAST_ONCE
|
||||
BlockingConnection willClient = mqttWill.blockingConnection()
|
||||
willClient.connect()
|
||||
println "Will Client connected"
|
||||
|
||||
|
||||
println "Connect a subscriber to the topic"
|
||||
MQTT mqtt = new MQTT()
|
||||
//mqtt.setHost("test.mosquitto.org", 1883);
|
||||
mqtt.setHost(host, 1883)
|
||||
mqtt.setCleanSession(true)
|
||||
mqtt.setHost(host, 1883)
|
||||
|
||||
mqtt.setClientId("SubscriberClient")
|
||||
BlockingConnection connection = mqtt.blockingConnection()
|
||||
connection.connect()
|
||||
println "Connected to ${host}"
|
||||
|
||||
Topic[] topics = [new Topic("/willtopic", QoS.AT_MOST_ONCE)]
|
||||
byte[] qoses = connection.subscribe(topics)
|
||||
println "subscribed to /willtopic qos: ${qoses[0]}"
|
||||
|
||||
//simulate a disconnection of the willclient
|
||||
willClient.kill()
|
||||
|
||||
Message message = connection.receive()
|
||||
assert message.topic == "/willtopic"
|
||||
message.ack()
|
||||
|
||||
connection.disconnect()
|
||||
|
||||
Reference in New Issue
Block a user