WebClientService

A set of services for accepting jabberd connections from browser-based Jabber clients (such as JWChat).

The Jabber WebClientService consists of two jabber components. A http component which handles the communication over http and a wcs component which handles the communication with the jabber server. Both modules are written for jabberd-1.4.x (Note: They can not be used with any other jabber server as they are internal components - though they can be set up to run as seperate processes).

WebClientService was initially developed by Jeremie Miller and is now maintained by Stefan Strigler <steve@zeank.in-berlin.de>.

If you want to run your own installation of JWChat you need to install theses modules first.

  1. Download
  2. Installation
  3. Help/Support
  4. Documentation
  5. Development

Download

Both modules can be downloaded at the Files section of the JabberStudio project site.

You can also choose to use Anonymous CVS to get a current snapshot. To do this please follow these steps:

Change to your jabberd installation directory first.

export CVSROOT=:pserver:anonymous@jabberstudio.org:/home/cvs
cvs login
at password prompt, just hit the "Return" key.
Now checkout the http component:
cvs -z3 co -d http WebClientService/http
And finally the wcs component:
cvs -z3 co -d wcs WebClientService/wcs

Installation/Configuration

If you have downloaded tarball releases please change to your jabberd installation directory and unpack both components.

Compile both modules by executing

make -C http
make -C wcs
Now you have to configure your jabber server to make use of both components. For detailed configuration instructions please follow the steps in the README's of both components.

To get a clue how your jabber.xml should look like you can download my jabber.xml as an example.

If you plan to run both modules as seperate processes please have a look at the README of some other external component like mu-conference or aim-t. You should be aware that this will cost you a performance penalty at about 50%.

Help/Support

By now there is no mailinglist or support forum dedicated to WebClientServices. Please use JWChat's help forum hosted at Sourceforge or the jadmin mailinglist if your support request is not related to JWChat.

For submitting bugs or making feature requests feel free to use the modules at our JabberStudio project site.

Documentation

There is an interactive online documentation included with the wcs component in the "docs" subdirectory. Before you can use it you have to configure a web server on this machine to be able to deliver these html files and of course you have to setup your jabber server as described above. When you're done run "setup.pl" from within this directory to configure the docs accordingly to your installation. E.g.:
perl setup.pl jabber.zeank.in-berlin.de/wcs/docs jabber.zeank.in-berlin.de:8080 jabber.zeank.in-berlin.de
Now point your browser to this location and follow the instructions there.

For those interested in how it works all together here is a brief description of both components:

The http component enables your jabber server to handle incoming http connections on the configured port. It parses all incoming HTTP into an xml packet and then routes those xml packets to the configured component to handle it. Responses from the component are then written back to the connection.

The wcs component handles the communication with your jabber server. It converts incoming packages from the http component into proper jabber packets which can be understood by jabberd-1.4.x and vica versa (see figure below).
Asynchronous incoming packets from the jabber service are being held in a session based cache which can be polled by a client. Response output format can be chosen at runtime accordingly to a specific request. Known output formats are HTML, XML and JavaScript so far.
Due to its modular design the component can be extended very easily.

Development

If you want to contribute developing WebClientServices feel free to contact me directly at steve@zeank.in-berlin.de (Stefan Strigler).


© 2004 Stefan Strigler