Kommunikation über das Internet


Image by Gordon Johnson from Pixabay

In diesem Projekt wird es darum gehen, wie man einfache Informationen (Zahlen, Texte) über das Internet mit anderen Rechnern austauschen kann. Dazu werden wir eine Technik verwenden, die z. B. auch für die Automation von Häusern eingesetzt wird (siehe auch das Projekt Smarthome dazu).

MQTT steht für Message Queuing Telemetry Transport und bezeichnet ein Verfahren, über ein Netzwerk, z. B. das Internet, kurze Informationen wie Texte, Steuer- oder Messdaten zu versenden.

Dazu benötigt man einen Server, auch MQTT-Broker genannt, der die gesendeten Daten entgegennimmt und an die richtigen Endgeräte (Clients) weiterleitet.
Das besondere bei MQTT ist, dass ein Empfänger zunächst ein Thema abonnieren muss (engl. subscribe to topic). Man kann sich das vorstellen wie bei Twitter, bei dem man einer Person folgt und automatisch alle Tweets dieser Person erhält.
Sendet ein Rechner nun eine Nachricht zu diesem Thema an den MQTT-Broker (publish message to topic), so leitet dieser die Nachricht an alle Clients weiter, die dieses Thema abonniert haben.
Man kann auch wieder das Empfangen von Nachrichten zu einem Themen deaktivieren (unsubscribe to topic).

Die folgende Animation zeigt eine mögliche Kommunikation zwischen drei Clients und einem MQTT-Broker (Server).

In Snap! verwenden wir ein Projekt, dass bereits alle wichtigen Blöcke dafür beinhaltet.

VorgangBlock in Snap!
Anmelden am Server
Abonnieren eines Themas
mit Ausgabe über die Sprechblase des Sprites
Abonnieren eines Themas
mit Senden einer Nachricht an alle Sprites

Die Nachricht kann von jedem Sprite mit dem folgenen Block verarbeitet werden:
Abonnieren eines Themas
mit Aufrufen des Blocks A bei einer Nachricht.

Dieser Block muss für die eigenen Bedürfnisse angepasst werden:
Senden einer Nachricht zu einem Thema
Kündigen eines abonnierten Themas
Trennen vom Server

Du kannst die gezeigte Kommunikation selbst ausprobieren. Im Folgenden siehst du für die drei Clients A, B und C jeweils ein eigenes Programmfenster.

Teste die Kommunikation mit einer weiteren Person an einem anderen Rechner bzw. Ort. Verändere das abonnierte Thema.
Wenn du ein eigenes Internet-Projekt erstellen möchtest, speichere eines der letzten Projektfenster in deinem Cloudspeicher oder exportiere das Projekt auf deinen Rechner.
Beachte, dass jeder Benutzer des hier verwendeten MQTT-Servers Nachrichten mithören kann. Dazu muss er nicht einmal das Thema (Topic) kennen. Es ist nämlich auch möglich, alle Nachrichten zu allen Themen zu erhalten.
Dazu muss man das Topic /# abonnieren. Das folgende Programm zeigt eindrucksvoll, wie viele Nachrichten über den MQTT-Server verschickt werden.

Die Datenübertragung mit Hilfe des Internets ist in den letzten Jahren massiv gestiegen. Dabei nimmt nicht nur die Menge der Daten zu. Mittlerweile können kleinste und günstige Geräte über das Internet kommunizieren, wie z. B. Haushaltsgeräte, Sprachassistenzsysteme, Fitnesstracker, Smartwatches, etc. Dies wird auch als Internet der Dinge (engl. Internet of Things - IoT) bezeichnet.
Für den Benutzer bedeutet das häufig einen Gewinn an Komfort und eine Erleichterung bei der Bewältigung täglicher Aufgaben. Gleichzeitig besteht aber auch die Gefahr, dass persönliche Daten durch Hacker oder durch technische Fehler ungewollt an Dritte gelangen oder das über das Internet eigene Geräte manipuliert werden.

Nenne und bechsreibe verschiedene Internetdienste.
Überlege, welche Informationen du tagtäglich über das Internet sendest und empfängst.
Ordne die Anwendungen nach der Wichtigkeit für dich.
Auf deinem Computer, den du auch für verschiedene Internetanwendugen nutzt, befinden sich einmalige Fotos von deinem mittlerweile defekten Handy. Erläutere sinnvolle Maßnahmen, um die Fotos sicher später noch anschauen zu können.