jsjac
jsjac copied to clipboard
JavaScript Jabber/XMPP Client Library
JSJaC - JavaScript Jabber Client Library
JSJaC is a jabber/XMPP client library written in JavaScript to ease implementation of web based jabber/XMPP clients. For communication with a jabber server it needs to support either [1]HTTP Polling or [2]XMPP Over BOSH (formerl known as HTTP Binding). JSJaC has an object oriented interface which should be quite easy to use. Communication is done by using the HTTPRequest object also refered to as AJAX technology. Your browser must support this. JSJaC is fully compatible with all major AJAX/JavaScript frameworks like prototype, mootools, jQuery, dojo and YUI!.
License
JSJaC is licensed under the terms of the GNU Lesser General Public License (LGPL). Please refer to the file named 'COPYING' that came with this distribution for details.
Hints on Usage
Service Address
Due to security restrictions you may have to forward or proxy requests to your jabber server's service address.
Let's say your JSJaC based web application is located at http://example.com. Your Jabber server is at jabber.example.com and it's HTTP Binding service is located at http://jabber.example.org:5280.
As most browser don't allow scripts to connect to a different domain and/or port as they have been loaded from you'd have to find a way how to access this service at some URI hosted at http://example.com/.
If you're using apache you could use mod_proxy and mod_rewrite to do this job for you:
%<--- <VirtualHost *> Servername example.com DocumentRoot /var/ww AddDefaultCharset UTF-8 RewriteEngine On RewriteRule ^/http-bind/ http://jabber.example.com:5280/http-bind/ [P] </VirtualHost> %<---
With this you'd end up having access to the Jabber server's service at http://example.com/http-bind/ (the httpbase address).
Debug Logger
JSJaCConnection supports use of [3]JSDebugger which is available separately.
JSJaC also ships with a class 'JSJaCConsoleLogger' which lets you log to Firebug's and Safari's console.
Example
For an example on how to use this library within your web application please have to look at 'examples/simpleclient.html'.
Supported Browsers and Platforms
The following browsers are known to work. Let me know about others!
Microsoft Internet Explorer 6+7 Firefox 2.0.x Opera 9 Safari 3
References:
[1] http://www.xmpp.org/extensions/xep-0025.html [2] http://www.xmpp.org/extensions/xep-0206.html [3] http://svn.stefan-strigler.de/JSDebugger/trunk