JWChat für Elgg

Kurzinfo
Lizenz: GNU General Public License
Aktuelle Version: 0.1 Beta
Lauffähig: ab PHP 5, ejabberd 2, MySQL, Elgg 1.2
Kurzbeschreibung: Integriert den JWChat in Elgg und ermöglicht somit Instant Messaging auf der Elgg-Plattform via Jabber.

JWChat in Elgg
JWChat in Elgg Zoom

» Demo ansehen

Allgemein

Ich denke, dass das die eine oder andere Plattform aufwerten könnte: Jabberintegration für Elgg! Das Frontend stellt eine teilweise modifizierte Version des JWChat da. Im Backend kommuniziert das Modul auf Datanbankebene mit dem Jabberserver und kümmert sich um korrekte Buddylisten und Registrierungen.

Bitte Beachten

  • Es handelt sich um eine Beta Version. Ich würde mich jedoch freuen, wenn ich möglichst viel Feedback bekomme damit sich das ändert.
  • Derzeit läuft das PlugIn nur mit ejabberd 2 und MySQL. Unterstützung für weitere DBMs und Jabberserver ist eingeplant.
  • Die Browserunterstützung vom JWChat sollte mit der des PlugIns identisch sein.
  • Das PlugIn braucht Zugriff auf die vom Jabberserver verwendete Datenbank.
  • Auch Gruppenchats (muc) sind möglich. Dazu müssen jedoch noch derzeit die Admins hardcodiert in die ejabberd Konfigurationsdatei eingetragen werden.

Installation

  • ejabberd mit MySQL Unterstützung aufsetzen. Welche Schritte dazu notwendig sind erfährt man am Besten hier. Die zusätzlichen Module mod_last, mod_offline, mod_roster und mod_vcard sollten auch auf ihre odbc Varianten umgestellt werden (wie zum Schluss beschrieben).
  • Stelle sicher, dass HTTP-Polling oder HTTP-Binding im ejabberd aktiviert ist. Hier hilft Google oder die Doku vom ejabberd weiter.
  • Webserver konfigurieren. Dazu ein Zitat aus der README vom JWChat.
    • Setup your web server so that it redirects some local address like http://jabber.example.com/http-poll/ to some service that either implements HTTP Polling or HTTP Binding.

      Here is an example that should work with a default ejabberd installation on the same host:


      <VirtualHost *>
      ServerName jabber.example.com
      # (...)
      AddDefaultCharset UTF-8
      RewriteEngine on
      RewriteRule http-poll/ http://127.0.0.1:5280/http-poll/ [P]
      </VirtualHost>

      (...)

      Note 1: You need to enable mod_rewrite and mod_proxy at your apache configuration. Apache2 users also need to enable the protocol specific proxy module mod_proxy_http.

      Note 2: With JabberHTTPBind you don't need to do this sort of address rewriting if you're serving JWChat's files from within your servlet container directly or you're using some technique like mod_jk to mount a remote servlet engine directory transparently into your apache's domain of served addresses.

    • Restart your web server.

    • Test if this redirect works. Following the example above point your browser to http://jabber.example.com/http-poll/. You should see the same response as if you you're pointing it to http://jabber.example.com:5280/http-poll/.

    Ich wurde mit dieser Konfiguration nicht glücklich, bei mir erweisen jedoch folgende Zeilen ihre Dienste.

    <VirtualHost *>
    ProxyPass /http-bind/ http://127.0.0.1:5280/http-bind/
    ProxyPassReverse /http-bind/ http://127.0.0.1:5280/http-bind/
    # und sehr viel mehr zeugs..
    (...)
    </VirtualHost>

    Wobei 127.0.0.1 mit der Serveradresse des ejabberd ersetzt werden muss.

  • Nun kommt das PlugIn ins Spiel. Downloaden, entpacken, den Ordner jabber in den mod Ordner der Elgg Installation kopieren und das Modul im Administrationsbereich aktivieren.
  • Plugin im Administrationsbereich konfigurieren. Im Screenshot siehst du meine Testkonfiguration. Beachte: Den Jabberserver unter localhost laufen zu lassen geht im Allgemeinen nicht gut, da sich die User dann natürlich nicht mit dem Jabberserver verbinden können.
  • Nun muss noch die Datenbankverbindung zur Datenbank des ejabberd eingetragen werden. Dies geschieht aus Sicherheitsgründen nicht im Administrationsbereich, sondern dazu muss die Datei mod/jabber/config.db.php entsprechend editiert werden.
  • Wenn alles läuft sollte das Modul mod_register aus dem ejabberd entfernt werden, damit das Ändern von Passwörtern und Registrierungen über den Jabberserver nicht mehr möglich sind.
  • Thats it! Auf dem Weg bis hierher kann sicher einiges schiefgehen, auch ich hatte einige Probleme bis ich den ejabberd dazu hatte zu tun was ich will. Bei Problemen Mail oder Kommentar, damit alle was von haben :)

Download