Προαπαιτούμενα
Βήμα πρώτο: Εγκαταστήστε το Mosquitto Broker
Βήμα δεύτερο: Εγκαταστήστε τους πελάτες και δοκιμάστε
Βήμα τρίτο: Ασφαλίστε με κωδικό πρόσβασης
συμπέρασμα
Το MQTT είναι ένα "ελαφρύ" πρωτόκολλο ανταλλαγής μηνυμάτων με βάση το μοντέλο έκδοσης/εγγραφής μέσω TCP/IP για επικοινωνία μεταξύ συσκευών "Internet of Things", όπως ESP8266, Raspberry Pi, κ.λπ. Είναι πολύ δημοφιλές με εφαρμογές χαμηλών πόρων και μπαταρίας, όπως το σπίτι αυτοματισμοί, συστήματα συναγερμού ασφαλείας και δίκτυα αισθητήρων που τροφοδοτούνται από μπαταρίες.
Το Mosquitto είναι ένας μεσίτης μηνυμάτων ανοιχτού κώδικα (ή διακομιστής) που εφαρμόζει πρωτόκολλα MQTT. Με την καλή υποστήριξη της κοινότητας, την τεκμηρίωση και την ευκολία εγκατάστασης, έχει γίνει ένας από τους πιο δημοφιλείς μεσίτες MQTT.
Προαπαιτούμενα
- Ένας διακομιστής Ubuntu 16.04 με
rootπρόσβαση
- Ανοίξτε τη θύρα
TCP:1883στο τείχος προστασίας
Βήμα πρώτο: Εγκαταστήστε το Mosquitto Broker
Ενημερώστε τη λίστα πακέτων του Ubuntu και εγκαταστήστε το πιο πρόσφατο Mosquitto Broker που είναι διαθέσιμο από αυτήν
sudo apt-get update
sudo apt-get install mosquitto
Η υπηρεσία Mosquitto θα ξεκινήσει μετά την εγκατάσταση.
Βήμα δεύτερο: Εγκαταστήστε τους πελάτες και δοκιμάστε
Εγκαταστήστε προγράμματα-πελάτες MQTT
sudo apt-get install mosquitto-clients
Οι πελάτες Mosquitto μας βοηθούν να δοκιμάσουμε εύκολα το MQTT μέσω ενός βοηθητικού προγράμματος γραμμής εντολών. Θα χρησιμοποιήσουμε δύο παράθυρα εντολών, ένα για να εγγραφείτε σε ένα θέμα με όνομα "test"και ένα για να δημοσιεύσετε ένα μήνυμα σε αυτό.
Τα θέματα είναι ετικέτες που χρησιμοποιούνται από τον μεσίτη για να φιλτράρουν τα μηνύματα για κάθε συνδεδεμένο πελάτη. Ένα πρόγραμμα πελάτη που είναι εγγεγραμμένο σε ένα θέμα "Home1/BedroomTemp"θα ακούει μόνο μηνύματα που δημοσιεύονται για το ίδιο θέμα από άλλους πελάτες.
Εγγραφείτε στο θέμα "test"
mosquitto_sub -t "test"
Mosquito_subείναι ένας πελάτης εγγραφής που εγκαταστήσαμε στην προηγούμενη εντολή. Εδώ καθορίζουμε το " -t" ακολουθούμενο από ένα όνομα θέματος.
Δημοσιεύστε ένα μήνυμα στο θέμα "test"
Συνδεθείτε στο τερματικό ως δεύτερη περίπτωση και δημοσιεύστε ένα μήνυμα στο "test"θέμα.
mosquitto_pub -m "message from mosquitto_pub client" -t "test"
Εδώ η πρόσθετη παράμετρος " –m" ακολουθείται από το μήνυμα που θέλουμε να δημοσιεύσουμε. Πατήστε " Enter" και θα δείτε ένα μήνυμα από να mosquitto_pub clientεμφανίζεται σε άλλο τερματικό όπου mosquito_sub clientεκτελείται.
Βήμα τρίτο: Ασφαλίστε με κωδικό πρόσβασης
Το Mosquitto συνοδεύεται από ένα βοηθητικό πρόγραμμα δημιουργίας αρχείων κωδικού πρόσβασης που ονομάζεται mosquitto_passwd.
sudo mosquitto_passwd -c /etc/mosquitto/passwd dave
Password: password
Δημιουργήστε ένα αρχείο διαμόρφωσης για το Mosquitto που δείχνει το αρχείο κωδικού πρόσβασης που μόλις δημιουργήσαμε.
sudo nano /etc/mosquitto/conf.d/default.conf
Αυτό θα ανοίξει ένα κενό αρχείο. Επικολλήστε τα παρακάτω σε αυτό.
allow_anonymous false
password_file /etc/mosquitto/passwd
Αποθηκεύστε και βγείτε από το πρόγραμμα επεξεργασίας κειμένου με " Ctrl+O", " Enter" και " Ctrl+X".
Τώρα επανεκκινήστε τον διακομιστή Mosquitto και δοκιμάστε τις αλλαγές μας.
sudo systemctl restart mosquitto
Στο παράθυρο εγγραφής πελάτη, πατήστε " Ctrl+C" για έξοδο από το πρόγραμμα-πελάτη εγγραφής και επανεκκίνηση με την ακόλουθη εντολή.
mosquitto_sub -t "test" -u "dave" -P "password"
Σημειώστε εδώ το κεφαλαίο -P .
Στο παράθυρο δημοσίευση προγράμματος-πελάτη, προσπαθήστε να δημοσιεύσετε ένα μήνυμα χωρίς κωδικό πρόσβασης.
mosquitto_pub -t "test" -m "message from mosquitto_pub client"
Το μήνυμα θα απορριφθεί με το ακόλουθο μήνυμα σφάλματος.
Connection Refused: not authorised.
Error: The connection was refused.
Τώρα δημοσιεύστε ένα μήνυμα με το usernameκαι password.
mosquitto_pub -t "test" -m "message from mosquitto_pub client" -u "dave" -P "password"
Πατήστε " Enter" και θα δείτε το μήνυμα στο παράθυρο εγγραφής πελάτη, όπως στο Βήμα δύο.
συμπέρασμα
Τώρα έχουμε δημιουργήσει έναν διακομιστή MQTT που προστατεύεται με κωδικό πρόσβασης. Μπορείτε να χρησιμοποιήσετε τη Δημόσια IP του διακομιστή σας Ubuntu ως μεσίτη MQTT για τα έργα σας.