Files
IM-server-new/tools_scripts/issue4_publish2Subscribers.groovy
T

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"