+ All Categories
Home > Documents > Internet of Things Publish – Subscribe MQTT · NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS...

Internet of Things Publish – Subscribe MQTT · NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS...

Date post: 04-Jul-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
10
NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS Internet of Things Publish – Subscribe MQTT Dimitris Soukaras [email protected]
Transcript
Page 1: Internet of Things Publish – Subscribe MQTT · NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS Internet of Things Publish – Subscribe

NATIONAL&KAPODISTRIANUNIVERSITYOFATHENS

NATIONAL&KAPODISTRIANUNIVERSITYOFATHENS

InternetofThingsPublish– Subscribe

MQTT

[email protected]

Page 2: Internet of Things Publish – Subscribe MQTT · NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS Internet of Things Publish – Subscribe

NATIONAL&KAPODISTRIANUNIVERSITYOFATHENS

IoTApplications

http://scan.di.uoa.gr|Page2 |6/12/2016

� Devices� ProgrammingBoards,Sensors,Actuators

� Programminglanguages� Java,Android,Javascript,Python

� Messaging� MQTT,CoAP

� Scaledscenarios� Homeautomation,smartcities,industrialapplications

Page 3: Internet of Things Publish – Subscribe MQTT · NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS Internet of Things Publish – Subscribe

NATIONAL&KAPODISTRIANUNIVERSITYOFATHENS

Publish-subscribe(1)

http://scan.di.uoa.gr |Page3 |6/12/2016

� Messagepatternήmessagequeueparadigmήmessageorientedmiddlewareήmessagingprotocolήconnectivityprotocol

� Ασύγχρονηεπικοινωνία• αποστολήδεδομένωνσεπραγματικόχρόνο

� Μικρόμέγεθοςμηνυμάτων• δεδομένααισθητήρων

� Χαμηλήκατανάλωσημπαταρίας• smartphone,embeddedboards

Page 4: Internet of Things Publish – Subscribe MQTT · NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS Internet of Things Publish – Subscribe

NATIONAL&KAPODISTRIANUNIVERSITYOFATHENS

Publish-subscribe(2)

http://scan.di.uoa.gr |Page4 |6/12/2016

� Publish� Δημοσίευσημηνυμάτωνενόςσυγκεκριμένουtopicστονmessagebroker

� Subscribe� Εγγραφήσεσυγκεκριμένοtopicστονmessagebroker

� Broker� Πρόγραμμαδιαμεσολαβητήγιατηδιαχείρισημηνυμάτωνμεταξύετερογενώνmessagingπρωτοκόλλων.• Επικαιροποίηση• Μετασχηματισμός• Δρομολόγηση

Page 5: Internet of Things Publish – Subscribe MQTT · NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS Internet of Things Publish – Subscribe

NATIONAL&KAPODISTRIANUNIVERSITYOFATHENS

MQTT(1)

http://scan.di.uoa.gr |Page5 |6/12/2016

� MQTelemetryTransport

� ΞεκίνησεαπότουςDrAndyStanford-Clarkτης IBMκαιArlenNipperτης Arcom (σημερινήEurotech) το1999

� ΧρησιμοποιήθηκεαπότοFacebookMessengerτο2011

� Ηέκδοση3.1.1έγινεδεκτήωςOASISstandardτο2014

Page 6: Internet of Things Publish – Subscribe MQTT · NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS Internet of Things Publish – Subscribe

NATIONAL&KAPODISTRIANUNIVERSITYOFATHENS

MQTTJavaClient- Subscriber

http://scan.di.uoa.gr |Page6 |6/12/2016

� packagecom.anap.second;

importcom.sun.jmx.snmp.Timestamp;importorg.eclipse.paho.client.mqttv3.*;importorg.eclipse.paho.client.mqttv3.persist.MemoryPersistence;

publicclassMainimplementsMqttCallback{

publicstaticvoidmain(String[]args){

Stringtopic="MQTTExample";int qos =2;Stringbroker="tcp://localhost:1883";StringclientId ="JavaSampleSubscriber";MemoryPersistence persistence=newMemoryPersistence();

try{

//ConnectclienttoMQTTBrokerMqttClient sampleClient =newMqttClient(broker,clientId,persistence);MqttConnectOptions connOpts =newMqttConnectOptions();connOpts.setCleanSession(true);

//SetcallbackMainmain=newMain();sampleClient.setCallback(main);

System.out.println("Connectingtobroker:"+broker);sampleClient.connect(connOpts);System.out.println("Connected");

//SubscribetoatopicSystem.out.println("Subscribingtotopic\""+topic+"\"qos "+qos);sampleClient.subscribe(topic,qos);

}catch(MqttException me){

System.out.println("reason"+me.getReasonCode());System.out.println("msg "+me.getMessage());System.out.println("loc "+me.getLocalizedMessage());System.out.println("cause"+me.getCause());System.out.println("excep "+me);me.printStackTrace();

}}

Page 7: Internet of Things Publish – Subscribe MQTT · NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS Internet of Things Publish – Subscribe

NATIONAL&KAPODISTRIANUNIVERSITYOFATHENS

MQTTJavaClient– Subscriber(2)

http://scan.di.uoa.gr |Page7 |6/12/2016

� /***@seeMqttCallback#connectionLost(Throwable)*/publicvoidconnectionLost(Throwable cause){//Thismethodiscalledwhentheconnectiontotheserverislost.System.out.println("Connectionlost!"+cause);System.exit(1);

}

/***@seeMqttCallback#deliveryComplete(IMqttDeliveryToken)*/publicvoiddeliveryComplete(IMqttDeliveryToken token){//Calledwhendeliveryforamessagehasbeencompleted,andallacknowledgmentshavebeenreceived

}

/***@seeMqttCallback#messageArrived(String,MqttMessage)*/publicvoidmessageArrived(Stringtopic,MqttMessage message)throwsMqttException {//Thismethodiscalledwhenamessagearrivesfromtheserver.

Stringtime=newTimestamp(System.currentTimeMillis()).toString();System.out.println("Time:\t"+time+

"Topic:\t"+topic+"Message:\t"+newString(message.getPayload())+"QoS:\t"+message.getQos());

}}

Page 8: Internet of Things Publish – Subscribe MQTT · NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS Internet of Things Publish – Subscribe

NATIONAL&KAPODISTRIANUNIVERSITYOFATHENS

MQTTJavaClient- Publisher

http://scan.di.uoa.gr |Page8 |6/12/2016

� packagecom.anap.second;

importorg.eclipse.paho.client.mqttv3.MqttClient;importorg.eclipse.paho.client.mqttv3.MqttConnectOptions;importorg.eclipse.paho.client.mqttv3.MqttException;importorg.eclipse.paho.client.mqttv3.MqttMessage;importorg.eclipse.paho.client.mqttv3.persist.MemoryPersistence;

publicclassMain{

publicstaticvoidmain(String[]args){

Stringtopic="MQTTExample";Stringcontent="MessagefromMqttPublishSample";int qos =2;Stringbroker="tcp://localhost:1883";StringclientId ="JavaSamplePublisher";MemoryPersistence persistence=newMemoryPersistence();

try{

//ConnecttoMQTTBrokerMqttClient sampleClient =newMqttClient(broker,clientId,persistence);MqttConnectOptions connOpts =newMqttConnectOptions();connOpts.setCleanSession(true);System.out.println("Connectingtobroker:"+broker);sampleClient.connect(connOpts);System.out.println("Connected");

//PublishmessagetoMQTTBrokerSystem.out.println("Publishingmessage:"+content);MqttMessage message=newMqttMessage(content.getBytes());message.setQos(qos);sampleClient.publish(topic,message);System.out.println("Messagepublished");sampleClient.disconnect();System.out.println("Disconnected");System.exit(0);

}catch(MqttException me){

System.out.println("reason"+me.getReasonCode());System.out.println("msg "+me.getMessage());System.out.println("loc "+me.getLocalizedMessage());System.out.println("cause"+me.getCause());System.out.println("excep "+me);me.printStackTrace();

}}

}

Page 9: Internet of Things Publish – Subscribe MQTT · NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS Internet of Things Publish – Subscribe

NATIONAL&KAPODISTRIANUNIVERSITYOFATHENS

MQTT– Mosquitto Broker

http://scan.di.uoa.gr |Page9 |6/12/2016

To Mosquitto Broker εκτελείται (αρχικές ρυθμίσεις) με την παρακάτω εντολή:

/{path}/{to}/mosquitto -c /{path}/{to}/mosquitto.conf

Page 10: Internet of Things Publish – Subscribe MQTT · NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS Internet of Things Publish – Subscribe

NATIONAL&KAPODISTRIANUNIVERSITYOFATHENS

Χρήσιμοισύνδεσμοι

http://scan.di.uoa.gr |Page10 |6/12/2016

� MQTThttp://mqtt.org/

� EclipsePaho clientjavadochttps://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/package-summary.html

� EclipsePaho Javaclienthttps://eclipse.org/paho/clients/java/

� EclipsePaho AndroidClienthttps://eclipse.org/paho/clients/android/

� Mosquitto Broker downloadpagehttps://mosquitto.org/download/


Recommended