Fakultät Informatik/Mathematik Internettechnologien für Geoinformatik/Management
Prof. Dr.-Ing. habil. P. Sobe
11. Praktikum – Websockets und JSON
Im 11. Praktikum wird die flightinfo-Webanwendung aus dem Praktikum 9 wieder aufgenommen. Die Webanwendung soll nun einen Websocket zu einem Server aufbauen, der aktuelle (hier simulierte) Positionen eines Flugzeugs übermittelt.
Diese Positionen, zusammen mit weiteren Informationen werden in einem JSON- String kodiert.
Zur Benutzung von Websockets muss ggf. für den XAMPP-Webserver die Erweiterung php_sockets aktiviert werden. Gehen Sie dazu wie folgt vor:
Auswahl XAMPP Control Panel -> Apache -> Config -> PHP.ini
in der PHP.ini ist extension=php_sockets.dll zu aktivieren Teilaufgaben:
a) Installieren Sie sich das vorgegebene Server-Skript flightpos_server.php zusammen mit websockets.php und users.php im Dokumentpfad des XAMPP- Webservers!
Betrachten Sie den Code des Skripts flightpos_server.php und überlegen Sie, welche Funktionalität durch den Server bereitgestellt wird!
b) Starten Sie das Serverskript flightpos_server.php über die XAMPP-Shell! Dazu muss php.exe mit dem auszuführenden Skript als Argument angegeben werden. Der Start muss aus dem Verzeichnis heraus erfolgen, in dem sich die Skriptdateien befinden; der Pfad zu php.exe muss relativ zu diesem Verzeichnis angegeben werden.
c) Erweitern Sie die flightinfo-Webanwendendung, dass bei einer Querystring- Angabe filghtinfo.php?display=airplanepos der vom Server gesendete JSON- String entgegengenommen und als Text dargestellt wird!
Die Server-URL lautet: ws://127.0.0.1:8080/flightinfo
Beachten Sie, dass der Server mehrmals verschiedene JSON-Strings sendet.
Es handelt sich dabei um die simulierte Position eines Flugzeugs, die im Abstand von einer Sekunde aktualisiert wird.
d) Verarbeiten Sie die eintreffenden JSON-Strings und stellen Sie die Information in geeigneter Weise auf der Weltkarte dar!
Zusatzaufgabe:
Gestalten Sie Ihre Webanwendung so, dass die Querystring-Angabe display=airplanepos auch zusammen mit source=database, bzw. source=file benutzt werden kann!