Psi+ und Acknowledgements via XEP-0184 & XEP-0198

Ich ja bin ein riesen Fan vom Jabber/XMPP-Protokoll (ich werde da auch irgendwann mal hoffentlich drüber schreiben…). Als Client verwendete ich eigentlich immer Psi und war relativ zufrieden. Jetzt habe ich die Tage aber Psi+ für mich entdeckt. Es handelt sich dabei um einen (wenn ich es richtig verstehe russischen) Fork von Psi, welcher Patches und neue Funktionalität mit integriert. Ich kann nur sagen: Da geht was! 😉 Kann ich wirklich nur weiter empfehlen.

Da ich in letzter Zeit immer wieder mit Leuten „gejabbered“ habe, die eine unstabile Internetverbindung haben, hat es mich immer sehr gefuchst, dass ich nie wusste, ob eine Nachricht jetzt angekommen ist, oder nicht, da keine Acknowledges im Standard festgelegt sind (was auch okay ist, da XMPP ja sehr leichtgewichtig und dafür umso erweiterbarer ist). Meine große Hoffnung war daher das Google Summer of Code-Projekt von Tobias Markmann, bei welchem er XEP0198: Stream Management für Psi implementiert hat. Ich habe mir den Standard nicht ganz durchgelesen*, kann also nicht allzu viel dazu sagen, was er noch kann, aber mit ihm sind Server-ACKs möglich und man weiß dadurch, ob eine Nachricht beim Server angekommen ist und was nicht. Aber ich fürchte, bis das in allen Jabber-Servern integriert (sowohl implementiert als auch im Live-Einsatz) ist, wird es noch lange dauern.

Über Psi+ bin ich nun auf die XEP-0184: Message Receipts [Aktualisierung, 12.03.2010: Der Name der Erweiterung wurde zu „Message Delivery Receipts“ geändert] gestoßen (keine Ahnung, warum ich die XEP immer überlesen habe…), bei welchem der Client eine Message-Stanza schickt, in der er den Empfang bestätigt. Natürlich müssen beide Clients die XEP implementiert haben, aber dann funktioniert das super. Der Sender schickt in seiner Nachricht die Anforderung nach einem ACK mit und der Empfänger schickt ein „received“ zurück. Das funktioniert auch, wenn der Empfänger zwischenzeitlich offline (==Offmessage) war mit Psi+ super. Ein sehr cooles Feature, das muss ich sagen. Vor allem weiß man so, dass die Nachricht wirklich beim Empfänger angekommen ist und nicht nur beim eigenen Jabber-Server*. Das war genau das, was ich gesucht habe und trifft es noch eher als die XEP-0198*. Hoffentlich werden das bald noch mehr Clients beherrschen! [Nachtrag 29.12.2010: Wie ich festgestellt habe, beherrscht Miranda IM ebenso XEP-0184; Receipts werden automatisch bestätigt und auf Wunsch (=wenn in den Optionen gewählt) auch angefordert.; 16.01.2011: Gajim unterstützt die Funktion standardmäßig auch.]

*[Update (06.02.2011): Nun, mittlerweile habe ich mir die XEP-198 einmal genau durchgelesen und muss meine Aussagen etwas revidieren. Der Standard erfüllt meine Ansprüche – sogar wesentlich besser, als XEP-0184. In diesem Fall prüft der Server nämlich auch, ob der Client die Nachricht wirklich bekommen hat – andernfalls lässt er sie im Offline-Speicher. Es ist eine interessante Technik, die über die drei „Standard-Stanzas“ von XMPP hinausgeht, weil es auf ein tieferen Ebene angesetzt ist. Jedoch ist sie auch wesentlich aufwendiger zu implementieren und -besonders wichtig- sowohl vom Client als auch vom Server unterstützt werden. Und darin ist wohl auch der große Nachteil: Selbst das simple „Message Receipts“ wird ja bei weitem nicht von allen Clients unterstützt, „Stream Management“ erst recht nicht. Nun, vielleicht wird sich das in ein paar Jahren ändern und Message Receipts wird nur eine Fallback-Lösung, solange finde ich aber, ist es eine simple und ziemlich praktische Erweiterung des XMPP-Protokolls.]

Ja, soviel mal kurz zwischen drinnen von mir. Vielleicht kannte der eine oder andere Psi oder Psi+ ja noch nicht, und ist jetzt daran interessiert. Und wer noch gar keine Ahnung von Jabber hat, dem empfehle ich einfachjabber.de, da wird das ganze sehr schön anschaulich und praxistauglich erklärt, auch für Leute, die sich absolut nicht mit Computern/Software auskennen und sie einfach nur nutzen wollen (soll es ja geben 😉 )

P.S.: Nutzt Jabber zum Chatten! 😉

2 Kommentare

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*