Szenario: Status

Schritt Peer #1   Peer #2
1. Der StatusUpdater und der StatusController werden gestartet.   Der StatusController wird gestartet.
2. Der StatusUpdater nimmt jeden Buddy in der BuddyList und schickt ihm eine StatusPingMessage.    
3.     Der Controller empfängt eine StatusPingMessage.
4.     Er extrahiert den Sender Buddy, der bereits beim Empfang der Message durch den ReceiveService in fromXML durch den SearchController identifiziert wird. Konnte kein Sender gefunden werden (was theoretisch nicht sein dürfte), wird ein neues leeres Buddy Objekt erzeugt (was zu Folgefehlern führen dürfte).
5.     Der Controller baut auf Basis des Sender Buddy Objektes und des eigenen Buddy Objektes eine StatusPongMessage auf, die den eigenen Status enthält (online, busy, ...) und schickt diese zurück zum Peer #1
6. Der StatusController empfängt eine StatusPongMessage und informiert das lokale Buddy Objekt, dem diese StatusMessage zugehörig ist und setzt den Status des Buddies auf den mitgelieferten Wert.    
7. Antwortet Peer #2 eine bestimmte Zeit lang nicht auf StatusPingMessages, setzt der BuddyTimerTask den Status des Buddies auf Offline.    

Weiterführende Szenarien: << Zurück zum Index.