Jabber Ressourcen

Jabber bietet sogenannte Ressourcen. Ressourcen ermöglichen es, dass man mit mehreren Clients, unter derselben JID, gleichzeitig online sein kann.

Eine Ressource wird an die JID angehängt, z.B. Max.Mustermann@jabber.org/home oder Max.Mustermann@jabber.org/office usw. Welche Ressource verwendet wird entscheidet die Priorität oder man kann im Client manuell explizit eine Ressource auswählen. Die Priorität kann man manuell vergeben oder sie wird automatisch vom Client vergeben wenn der Status (Anwesend, Abwesend, Beschäftigt…) geändert wird. Je höher der Wert umso höher ist die Priorität. Der Client mit der höchsten Priorität bekommt die Nachrichten gesendet.

Die Vergabe der Prioritäten zwischen den unterschiedlichen Clients ist aber nicht einheitlich und manche unterstützen es gar nicht. So hilft es zb nichts wenn man Gajim auf abwesend stellt und auf einem anderen Rechner Pidgin auf Angemeldet da die Priorität von Gajim immer noch höher ist und damit alle Nachrichten erhält (siehe Prioritäten von Clients). Wenn man verschiedene Clients verwendet muss man u.U. die Prioritäten manuell ändern.

Ich versuche das Beispiel aus dem jabber.org Wiki mal frei zu übersetzten.

Beispiel für Jabber Ressourcen

Angenommen du bist bei der Arbeit. Gegen 14:00 Uhr möchtest du zum Essen gehen. Du stellst deinen Client auf dem Büro PC auf abwesend. Unterwegs fällt dir ein, dass du noch eine Nachricht schreiben wolltest. Du nimmst dein Mobiltelefon und startest einen J2ME Client (z.B. Mobber oder Bombus). Damit bist du wieder anwesend und alle Nachrichten landen auf deinem Mobiltelefon. Im Restaurant angekommen, stellst du fest, dass es ein offenes WLAN gibt. Du startest deinen PDA mit einem weiteren Client. Nun sind beide Clients (PDA und Mobiltelefon) anwesend. Damit der PDA den Vorzug bekommt, sollte er eine höhere Priorität als das Mobiltelefon erhalten.

Prioritäten

Wenn man beim Starten eines Chats nicht explizit eine Ressource des Chatpartners auswählt, entscheidet der Server anhand der Priorität welche Ressource verwendet wird. Der Client mit der höchsten Priorität erhält den Vorzug. Sollten zwei oder mehr Clients die gleiche Priorität besitzen, entscheidet der Server nach einer vorbestimmten Regel. Welche das ist, hängt vermutlich von den Einstellungen des Server ab. Vermutlich wird der Client gewählt, der zuletzt aktiv war

Prioritäten einzelner Jabber Clients

Die Jabber Clients verwalten die Prioritäten unterschiedlich. Ich habe mich mal hingesetzt und verschiedene Clients hinsichtlich der Prioritäten untersucht und diese Liste erstellt. Würde mich freuen, wenn ihr dabei helfen könntet die Liste zu erweitern.

Prioritäten bei Gajim

  • Angemeldet: 50
  • Frei zum Chaten: 50
  • Abwesend: 40
  • Nicht verfügbar: 30
  • Beschäftigt: 20
  • Unsichtbar: 10

Gajim erlaubt es die Prioritäten anzupassen. Man findet es im Menu Ändern→Einstellungen→Erweitert→Erweiterter Konfigurationseditor Öffnen. Und dort unter accounts→accountname→autopriority_*

Prioritäten bei Pidgin/Adium

  • Angemeldet: 1
  • Gesprächig: 1
  • Abwesend: 0
  • Nicht verfügbar: 0
  • Beschäftigt: 0

Prioritäten für JWChat

Auf http://jwchat.org/ gibt es einen web-based Jabber Client. Dieser bietet drei Prioritäten:

  • low: 0
  • medium: 10
  • high: 100

Prioritäten bei Psi

Psi kann anscheinend automatisch keine Prioritäten vergeben. Default Wert ist 5

Prioritäten bei Kopete

Kopete kann auch keine automatischen Prioritäten vergeben. Der Default Wert ist hier immer 2

Prioritäten bei SIM

SIM scheint auch keine automatischen Prioritäten zu verwalten. Der Default Wert ist hier 5

Prioritäten bei meebo.com

  • ich bin anwesend: 1
  • alle anderen: 0

Prioritäten von Gossip

  • Verfügbar: 50
  • Beschäftigt : 40
  • Abwesend : 30

Sonderfall negative Prioritäten

Jabber bietet die Möglichkeit negative Prioritäten zu vergeben. Ein Server wird eine Ressource mit einer negativen Priorität immer ignorieren. Um mit einer solchen Ressource in Verbindung zu treten, muss man explizit einen Chat mit ihr starten.

Fazit

Ressourcen funktionieren, aber nur wenn die Clients richtig mitspielen bzw., wenn man überall den gleichen Cient verwendet. Verwendet man unterschiedliche Clients auf mehreren Rechners, kann das zu unerwünschten Effekten führen. Hat man zB. auf einem Rechner Kopete und auf einem anderen Pidgin installiert, dann spielt der Online Status keine Rolle. Kopete hat immer die höchste Priorität und erhält damit die Nachrichten. Im ungünstigsten Fall unterhält sich der Chatpartner mit einem einsamen PC und man selbst fragt sich, was man falsch gemacht hat, sodass niemand antwortet ;).

Offensichtlich wurden bei der Definition von XMPP keine Prioritäten vorgegeben oder die Programmierer halten sich einfach nicht dran. Wenn man, warum auch immer, unterschiedliche Clients verwendet, muss man darauf Rücksicht nehmen und gegebenenfalls die Werte manuell ändern.

Ideal ist hier Gajim. Er bietet für jeden Status eine eigene Priorität und die Möglichkeit, die Werte anzupassen. Unstimmig ist nur die Einstufung der beschäftigt Priorität. Angenommen der Rechner zu Hause steht auf abwesend und im Büro schalte ich auf beschäftigt, dann hätte der Client zu Hause die höhere Priorität und würde in dieser Zeit alle Nachrichten erhalten.

Wer nur Pidgin verwendet, kann damit auch glücklich werden. Problematisch ist nur, wenn der Client, an dem man gerade arbeitet, nach 5 Minuten auf abwesend schaltet. Dann haben alle Clients die Priorität 0 und wenn der Server damit nicht zurecht kommt, können Nachrichten auf dem falschen Client landen.

Sollte alles andere nicht helfen, kann man den Chatpartner immer noch bitten, direkt mit der Ressource einen Chat zu starten. Dann kommen dessen Nachrichten unabhängig von den vorliegenden Prioritäten an.

Diskussion

FelixFelix, 2009/05/20 20:58

Das mit den Prioritäten ist echt ein Witz, schaut euch mal Skype an. Hier werden alle Nachrichten auf allen Clients synchronisiert. Selbst wenn man eine Nachricht schreibt so erscheint diese bei dem anderem Client. Anders macht es meiner Meinung auch keinen Sinn. Schließlich geht es hier um Informationen und für jemanden der verschiedene Rechner benutzt sollten diese auch überall verfügbar sein. Mit diesem Prioritätsverhalten gehen eindeutig Informationen verloren oder finden erst gar nicht den Weg zum Empfänger … hier muss auf jedenfall was getan werden. Gibt es eine Jabber Server Software die das Verhalten von Skype immitieren kann? wäre erfreut um Nachricht.

Markus BurrerMarkus Burrer, 2009/05/21 09:00

Ist es denn mit Skype überhaupt möglich, mit dem gleichen Account „gleichzeitig!“ mehrmals online zu sein? Ich kenne das nur von ICQ. Wenn ich mich an einem zweiten Rechner anmelde fliegt der erste raus. Dem gegenüber ist Jabber schon ein riesen Schritt.

Größtes Problem sind hier nur wieder die unterschiedlichen Clients. Referenz ist für mich eindeutig Gajim

FelixFelix, 2009/05/21 21:45

Erfreuliche Nachrichten ;-) ich hab dem Admin von jabjab.de geschrieben er solle doch bei seinem Openfire Jabber Server die Option „route.all-resources = true“ zu setzen. Kurze Zeit später wurde das Ticket bearbeitet und die Option gesetzt. Jetzt bekomm ich die Nachrichten auf beiden PC´s ! Super!

@ Markus

Ja bei Skype ist es möglich sich mit beliebig vielen PC´s sich anzumelden. Dabei wird alles syncronisiert. ausgehend und eingehende Nachrichten. Auch Anrufe klingeln bei allen Computern. Dort ist es richtig gut gelöst. Solch ein verhalten sollten alle modernen Kommunikationsmittel haben. Eine Telefonnummer und mein Festnetz klingelt und mein Handy und meine Schuhsole :-) so kann ich entscheiden wo ich dran geh.

lg Felix

Geben Sie Ihren Kommentar ein (Wiki-Syntax ist zugelassen):
Wenn Sie die Buchstaben auf dem Bild nicht lesen können, laden Sie diese .wav Datei herunter, um sie vorgelesen zu bekommen.
/www/htdocs/w00645de/dokuwiki/data/pages/jabber/jabber_ressourcen.txt · Zuletzt geändert: 2009/10/22 20:23 von 85.127.93.92
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0