Für ein Projekt steht die Entwicklung eines Chat-Systems an. Bei der Evaluierung der möglichen Systeme, habe ich mich für APE entschieden. Andere Optionen wäre ein XMPP-basiertes System (Openfire,ejabberd) oder IRC/XMPP (Psyc) mit entsprechender Weboberfläche.
Vorteile von APE
- Vollständig Open-Source
- Gute Dokumentation
- Viele Beispiele
- Serverseitige Module können in JS geschrieben werden
- Mootools-Kompatibel
- Perl-Module vorhanden (http://search.cpan.org/dist/Net-APE/)
- Ständige und aktive Weiterentwicklung
- Freundlicher IRC-Channel auf freenode #ape-project
- JSON-basiertes Protokoll
Für die Umsetzung wurde die klare Trennung der einzelnen Komponenten empfohlen. Man sollte den Chat problemlos an eigene Webanwendungen ankoppeln können. Nur die Authentifizierung erfolgt über das Servermodul von APE zur Webanwendung. Nach erfolgreicher Authentifizierung erhält der User der APE alle nötigen Daten für den weiteren vollständig getrennt ablaufenden Chat/Onlinestatus.
Innerhalb von APE müssen grob die folgenden Funktionen umgesetzt werden:
- Authentifizierung gegen das Backend via HTTP und Zuordnung der Daten zur APE-Session des Benutzers
- Setzten des persönlichen Online-Status mit Information an alle Buddies
- Dialog mit einem zweiten Benutzer im System
- Teilnahme an einen Gruppen-Chat -> Chatraum
- Moderierter Chat für VIP/Promies
- Chat-Roulette – Zufällige Auswahl einen Dialogpartners
- Auflistung aller aktiven und sichtbaren Benutzer im System
- Anzeige der aktiven Mitglieder und deren Aktionen auf einer Weltkarte (Privatsphäre beachten)
In den nächsten Tagen folgenden Details zur Umsetzung der einzelnen Funktionen.