ajax im
download 3.4
compressed(yui compressed – 297 kb)
uncompressed(full documentation – 317 kb)
what is it?
ajax im ("asynchronous javascript and xml instant messenger") is a browser-based instant messaging client. It uses AJAX to create a near real-time IM environment that can be used in conjunction with community, intranet, and social websites. No refreshing of the page is ever needed for this "web application" to work, as everything is updated in real-time via JavaScript.
demonstration
Launch the demo here. Demo accounts are usernames "test", and "test[1 to 4]". Password is "test". You can also create your own account on the demo.
updates
Updates in version 3.4:
- Fixed popup.php Include Path, Bold, Italic, and Underline errors (Issue #116, Issue #111, Issue #91).
- Added option to disable the register ability.
- Multiple releases (YUI Compression, Full Source).
- Blocked buddies are now blocked when they should be (Issue #112).
- Added buddy icons (Issue #92).
- Added context/right-click menus (Issue #12).
- Added buddy profiles (Issue #13).
- Added Lingo-Replacement feature, can be used with multiple languages (Issue #127).
- Buddy status changes are shown in chat window.
- Custom timestamps now used in chat as well.
- User search now lists users' emails.
- Created update.php to update your ajax im installation from version 3.3 to 3.4.
- Created test-uploads.php to allow you to test your server for the ability to upload files.
- Created php.ini.sample. If you need a php.ini, just rename this to php.ini.
- Added auto-away/auto-idle feature (Issue #124).
- Fixed use of &, <, and > symbols (Issue #101).
- Fixed use of new lines (Issue #118).
- Added Shift+Enter shortcut to add a newline.
Updates in version 3.3:
- No more PHP file for languages, all language information is stored in Javascript (Issues #40 & 61)
- Language files are loaded dynamically and can be switched by user before login (Issues #40 & 61)
- index.php is now index.html, as there is now no PHP in the index file
- Fixed issue regarding buddies and letter casing (Issue #38)
- IM sounds fixed (Issue #42)
- IM timestamp format is now fully configurable (Issue #16)
- Selecting/hovering over users in chatlists fixed (Issue #81)
- Chatrooms can now be predefined for the "Join Room" chatlist (Issue #78)
- Added previously nonexistent "Make Admin" PHP function (Issue #24)
- Fixed error when "Sign On" button clicked a second time (Issue #3)
- Various minor issues (Issue #60)
- Page title is now modifyable via config.js (Issue #21)
language packs
| language | size | updated |
|---|---|---|
| Spanish | 3 kb | 05/02/2008 |
| German | 3 kb | 05/02/2008 |
| Brazilian Portuguese | 3 kb | 05/02/2008 |
| Dutch | 3 kb | 05/02/2008 |
| Simplified Chinese | 3 kb | 05/02/2008 |
| Vietnamese | 3 kb | 05/02/2008 |
| Russian | 3 kb | 05/02/2008 |
| Italian | 3 kb | 05/02/2008 |
| Persian (Farsi) | 3 kb | 05/02/2008 |
| French | 3 kb | 05/02/2008 |
| Japanese | 3 kb | 05/02/2008 |
| Korean | 3 kb | 05/02/2008 |
| Turkish | 3 kb | 05/02/2008 |
previous versions
| version | size | released |
|---|---|---|
| ajax im 3.3 | 284 kb | 03/08 |
| ajax im 3.22 | 273 kb | 01/08 |
| ajax im 3.21 | 273 kb | 12/07 |
| ajax im 3.2 | 276 kb | 12/07 |
| ajax im 3.1 | 297 kb | 02/07 |
| ajax im 3.0 | 297 kb | 11/06 |
| ajax im 2.53 | 199 kb | 10/06 |
| ajax im 2.52 | 199 kb | 10/06 |
| ajax im 2.51 | 200 kb | 10/06 |
| ajax im 2.5 | 199 kb | 10/06 |
| ajax im 2.02 | 125 kb | 08/06 |
| ajax im 2.01 | 125 kb | 08/06 |
| ajax im 2.0 | 124 kb | 08/06 |
| ajax im 1.0 | 53 kb | 10/05 |
news
3.4 Released, Looking For Contributors Version 3.4 has been released with an extensive list of updates and new features, thanks to ajax im's new contributor, Benjamin Hutchins. He has put quite a lot of work into getting many of the requested features (and bug fixes, of course) into the script. We're not done, either! Just wait until you see the upcoming version. On that same note, I am looking for two to three more developers. If you are interested in contributing to this project and really taking it further, please email or contact me (email preferred – contact information available below) with your credentials. As well, I'm looking for contractors interested in doing something involved with ajax im; for more information about this, please contact me. On the left, you will notice "compressed" and "uncompressed" download buttons. The compressed version was compacted using YUI Compressor and provides the smallest package possible. Uncompressed includes commented functions, divided files, and is better for development and debugging. As a final note, and keeping along the same vein as the other posts, we have a new language pack, Turkish, giving us 13 languages. As always, if you have another language you think it should be translated into, feel free to do so! Contributions are always appreciated.
May 3rd, 2008
bugs? features?
Find a bug? Want to request a feature? Submit it to the Bug Tracker!
how it works
The XMLHTTPRequest object allows HTTP requests to be sent to the server and get input back from the server. There are two parts to the client-server interaction through this object:
- The client "pings" the server (a PHP script) for new messages. The server in turn queries a database for any messages for the client, and returns them as JSON. The XMLHTTPRequest object passes this JSON text be parsed by the rest of the JavaScript.
- The client sends data to the server (a PHP script), such as a new message to another user. This data is then processed by the server ("cleaning" the data of any thing invalid) and put into the database, which is later "pinged" by another client.
why?
Why not? This system has many useful purposes in many environments, as was it an interesting script to code and assemble. Some example applications could be:
- Web-based support services
- Instant messenger for a social network
- Intranet instant messenger
And many others...
contact
If you would like to contact me for any reason, I am available via:
email: twist@unwieldy.net aim: epg msn: twist@unwieldy.net