background image

Σχεδιασμός και υλοποίηση συστήματος IoT ασύρματου ελέγχου και μέτρησης ενέργειας 

 

61 

 

Αν μια συσκευή  αποσυνδεθεί από το  MQTT για περισσότερα από 30 δευτερόλεπτα, 

εκπέμπεται  το  γεγονός  ‘clientDisconnect’  όπως  φαίνεται  στον  κώδικα  στην  Εικόνα  39. 
Έπειτα,  το  σύστημα  αλλάζει  την  κατάσταση  της  σε  ‘offline’,  καλώντας  την  μέθοδο 

‘updateClientStates’ με παραμέτρους το αναγνωριστικό της συσκευής και την λογική τιμή 
false.  

 

Εικόνα 39 : Κώδικας ακρόασης γεγονότος (event listener) αποσύνδεσης συσκευής 

 Έτσι, ο χρήστης μπορεί να ελέγξει αν μια συσκευή του αντιμετωπίζει πρόβλημα, και 

να προχωρήσει στις απαραίτητες ενέργειες (π.χ. έλεγχος της σύνδεσης στο διαδίκτυο). Το 

τμήμα του λογισμικού που φροντίζει για την ενημέρωση της κατάστασης των συσκευών, 
φαίνεται στην Εικόνα 40. Η κατάσταση των συσκευών αποθηκεύεται σε μια δομή τύπου 
κλειδιού-τιμής  (key-value)  στην  μεταβλητή  ‘allClients’,  με  το  κλειδί  να  είναι  το 

αναγνωριστικό (id) της συσκευής. 

 

 

Εικόνα 40 : Αποθήκευση κατάστασης συσκευής σε δομή key-value 

 

Γενικότερα,  σε  ότι  αφορά  την  ασφάλεια  του  συστήματος,  τηρήθηκαν    όλες  οι 

διαδικασίες  και  οι  βέλτιστες  πρακτικές.  Η  λίστα  των  βέλτιστων  πρακτικών  υπάρχει 

διαθέσιμη  στην  σελίδα  τεκμηρίωσης  (documentation)  του  πλαισίου  εφαρμογών 
Express.js.

9

  Η  επικοινωνία  με  τον  διακομιστή,  σε  κάθε  περίπτωση,  γίνεται 

κρυπτογραφημένα, μέσω του πρωτοκόλλου κρυπτογράφησης TLS. Για να διασφαλιστεί 

αυτό, όλα τα μη ασφαλή αιτήματα HTTP ανακατευθύνονται σε HTTPS, μέσω του κώδικα 
που φαίνεται στην Εικόνα 41. 
 

 

Εικόνα 41 : Ανακατεύθυνση των αιτημάτων HTTP σε HTTPS 

  
 

 

9

 https://expressjs.com/en/advanced/best-practice-security.html