From 215b85c4076af5e40d66f8e1b051d3cdfd7bf5da Mon Sep 17 00:00:00 2001 From: andrea Date: Tue, 26 Nov 2013 18:46:54 +0100 Subject: [PATCH] Added publisher and subscriber using mqtt-client lib from FuseSource --- tools_scripts/fuse_publisher.groovy | 27 +++++++++++++++ tools_scripts/fuse_subscriber.groovy | 51 ++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 tools_scripts/fuse_publisher.groovy create mode 100644 tools_scripts/fuse_subscriber.groovy diff --git a/tools_scripts/fuse_publisher.groovy b/tools_scripts/fuse_publisher.groovy new file mode 100644 index 00000000..7d53ee29 --- /dev/null +++ b/tools_scripts/fuse_publisher.groovy @@ -0,0 +1,27 @@ +@Grab(group='org.fusesource.mqtt-client', module='mqtt-client', version='1.5') + +import java.net.URISyntaxException + +import org.fusesource.mqtt.client.BlockingConnection +import org.fusesource.mqtt.client.MQTT +import org.fusesource.mqtt.client.QoS + +String host = args[0] + +MQTT mqtt = new MQTT() +//mqtt.setHost("test.mosquitto.org", 1883); +mqtt.setHost(host, 1883) +BlockingConnection connection = mqtt.blockingConnection() +connection.connect() + +print "publishing.." +long startTime = System.currentTimeMillis() +(1..100000).each { + connection.publish("/topic", 'Hello world!!'.bytes, QoS.AT_MOST_ONCE, false) +} +connection.publish('/exit', 'Exit'.bytes, QoS.AT_MOST_ONCE, false) +long stopTime = System.currentTimeMillis() +long spentTime = stopTime -startTime +println "published in ${spentTime} ms" +connection.disconnect() +println "disconnected" \ No newline at end of file diff --git a/tools_scripts/fuse_subscriber.groovy b/tools_scripts/fuse_subscriber.groovy new file mode 100644 index 00000000..2fbc055d --- /dev/null +++ b/tools_scripts/fuse_subscriber.groovy @@ -0,0 +1,51 @@ +@Grab(group='org.fusesource.mqtt-client', module='mqtt-client', version='1.5') + +import java.net.URISyntaxException + +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 +import java.util.concurrent.CountDownLatch +import java.util.concurrent.TimeUnit + +String host = args[0] +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("/topic", QoS.AT_MOST_ONCE), new Topic("/exit", QoS.AT_MOST_ONCE)] +byte[] qoses = connection.subscribe(topics) +println "subscribed to /topic qos: ${qoses[0]}" +println "subscribed to /exit qos: ${qoses[1]}" + +int numReceived = 0 +long startTime = System.currentTimeMillis() +boolean exit = false + +while(!exit) { + Message message = connection.receive() + if (message.topic == "/exit") { + exit = true + } else { + numReceived++ +// if ((numReceived % 10000) == 0) { +// print '.' +// } + } + message.ack() +} +connection.disconnect() +long stopTime = System.currentTimeMillis() +long spentTime = stopTime - startTime +println "/exit received" +println "subscriber disconnected, received ${numReceived} messages in ${spentTime} ms" +