42 lines
1.2 KiB
Groovy
42 lines
1.2 KiB
Groovy
@Grab(group='org.fusesource.mqtt-client', module='mqtt-client', version='1.5')
|
|
|
|
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[0]
|
|
MQTT mqtt = new MQTT()
|
|
mqtt.setHost(host, 1883)
|
|
mqtt.setCleanSession(true)
|
|
mqtt.setClientId("SubscriberClient")
|
|
|
|
BlockingConnection subscriber = mqtt.blockingConnection()
|
|
subscriber.connect()
|
|
println "Connected to ${host}"
|
|
|
|
Topic[] topics = [new Topic("/topic", QoS.AT_MOST_ONCE)]
|
|
byte[] qoses = subscriber.subscribe(topics)
|
|
println "Subscribed to ${topics}"
|
|
|
|
//start a publisher
|
|
MQTT mqtt2 = new MQTT()
|
|
mqtt2.setHost(host, 1883)
|
|
BlockingConnection publisher = mqtt2.blockingConnection()
|
|
publisher.connect()
|
|
publisher.publish("/topic", 'Hello world!!'.bytes, QoS.AT_MOST_ONCE, false)
|
|
|
|
//check subscriber received
|
|
Message message = subscriber.receive()
|
|
assert "/topic" == message.topic
|
|
assert "Hello world!!" == new String(message.payload)
|
|
message.ack()
|
|
|
|
println "shutdown subscriber"
|
|
subscriber.disconnect()
|
|
|
|
println "shutdown publisher"
|
|
publisher.disconnect()
|
|
|
|
println "Kill your broker and start it again, then trivialPublish.groovy" |