Client beschränken, sondern Daten aus dem Netzwerk oder Internet abrufen. Dieses Kapitel befasst sich mit den dafür vorgesehenen Mechanismen.
17 Die Verbindung nach außen – Netzwerk- und Internetverbindungen
Ein wesentlicher Vorteil von AIR-Anwendungen gegenüber Webanwendungen ist die Tatsache, dass ein Benutzer der Anwendung nicht mit dem Internet verbunden sein muss, um diese zu verwenden. Das gilt natürlich auch für andere Desktopanwendungen. An AIR-Anwendungen aber ist besonders, dass diese mit Technologie erstellt werden, die auch für Webanwendungen verwendet wird – das dürfte einer der wesentlichen Gründe sein, warum Sie überhaupt dieses Buch lesen. Wenn man dann noch den aktuellen (und wohl in Zukunft noch stärker werdenden) Hype um Cloud-Computing (also die Idee, dass Sie statt auf Ihrem Computer zu Hause oder im Büro Ihre Dateien irgendwo im Internet speichern) mit in die Betrachtung einbezieht, ergibt sich daraus eine besondere Bedeutung für die Verbindung zum Netzwerk oder Internet.
Ein weiterer Aspekt ist das mobile Internet. Wenn Sie mit Ihrem Netbook in einem Zug sitzen und durch einen Tunnel fahren, erwarten Sie, dass eine Anwendung trotz plötzlich aussetzender Internetverbindung reibungslos funktioniert. AIR bietet hierfür die Erkennung der Netzwerkkonnektivität an, der wir uns in diesem Kapitel u.a. widmen.
17.1 Änderung der Netzwerkverbindung feststellen
AIR bietet die Möglichkeit, festzustellen, wann eine Netzwerkverbindung verfügbar oder nicht verfügbar wird, und emittiert ein passendes Ereignis, das sich mit einem Ereignis-Listener abfangen lässt. AIR hält sich nicht lange damit auf, dem Wechsel einen wahrscheinlichen Sinn zuzuinterpretieren (z. B. ob und welche Verbindung gerade verfügbar geworden ist), sondern stellt lediglich fest, dass sich der Zustand einer Netzwerkverbindung verändert hat. Schließlich kann es ja auch sein, dass die Drahtlosverbindung unterbrochen wird, wenn der Benutzer im Büro am Schreibtisch sitzt, aber die Internetverbindung über das Netzwerkkabel noch besteht. Es wäre in einem solchen Fall zu aufwendig und performanceintensiv, alle Netzwerkverbindungen zu überprüfen. Wenn Sie also herausfinden wollen, ob es einen Wechsel zum aktiven oder zum inaktiven Status der Netzwerkverbindung gegeben hat, bleibt Ihnen nichts anderes übrig, als dies auszuprobieren. Das mag etwas merkwürdig erscheinen, ist aber für AIR sicherlich weniger aufwendig, als alle registrierten Netzwerkverbindungen im Auge zu behalten und sich die Mühe zu machen, die das Ereignis auslösende Verbindung herauszufinden. Schließlich ist es für eine AIR-Anwendung unerheblich, über welche Netzwerkverbindung eine Netzwerkverbindung zustande kommt – solange sie überhaupt zustande kommt.
Für den Fall, dass Sie die Verfügbarkeit von bestimmten Diensten oder Sockets überprüfen wollen, stellt das AIR SDK außerdem innerhalb der Komponente servicemonitor.swc passende Monitorklassen bereit.
17.1.1 Wechsel des Netzwerkverbindungsstatus feststellen
Wenn Sie unabhängig von Diensten oder Sockets auf den Wechsel der Netzwerkverbindung reagieren wollen, können Sie das Ereignis Event.NETWORK_CHANGE abfangen, das von AIR ausgelöst wird, sobald die Netzwerkverbindung zustande kommt oder abbricht.
Sobald das Ereignis eingetreten ist, müssen Sie lediglich noch die Verfügbarkeit der Netzwerkressourcen auf eine geeignete Weise überprüfen. Das kann z. B. darin bestehen, dass Sie ein URLReques t-Objekt erstellen, dieses aufzurufen versuchen und in passenden Ereignis-Listenern für den Erfolgs- und Fehlerfall die entsprechenden Rückschlüsse auf die Verfügbarkeit ziehen.
Was bringt es also, dass mir der Statuswechsel mitgeteilt wird, wenn ich ihn nachher ohnehin überprüfen muss? Ganz einfach: Gäbe es dieses Ereignis nicht, müssten Sie diese Prüfung in regelmäßigen Abständen (z. B. jede Minute einmal oder auch alle fünf Sekunden) auf Verdacht vornehmen – so brauchen Sie dies nur zu tun, wenn sich die Verbindung tatsächlich verändert hat.
Lösungsweg
1. Registrieren eines Ereignis-Listeners Event.NETWORK_CHANGE in der AIR-Anwendung
2. Überprüfen der Verfügbarkeit von benötigten Netzwerkressourcen im Ereignis-Listener
So geht es
Im folgenden HTML-Beispiel wird an ein
-Element ein Absatz (
) mit einer Statusmeldung ausgegeben, sobald sich der Status einer Netzwerkverbindung ändert:
Weitere Kostenlose Bücher