Releases » Four-point-oh Alpha in Detail

By Josh on Monday, February 15th, 2010

Now that every­thing is setup and (mostly) work­ing, I thought it might be worth­while to take a bet­ter look at the new Ajax IM and talk about some of the major changes and ben­e­fits of this brand new release.

All the good stuff below the cut.

So why the rebuild? Put sim­ply, the old Ajax IM just wasn’t enough for most peo­ple any­more. It lacked cer­tain fea­tures, the most glar­ing of which was its inabil­ity to eas­ily inte­grate with exist­ing web­sites, which was the pri­mary focus dur­ing the archi­tect­ing of the project. As well, the older ver­sions of Ajax IM were not up to speed with the lat­est AJAX tech­niques, such as long-polling and Comet (stream­ing); these issues are also addressed in the new version.

While the code is still buggy and the cur­rent ver­sion is an alpha, it is a mas­sive improve­ment over the past ver­sions. Just take a look at some of the major new features:

Easy inte­gra­tion with exist­ing websites

Ajax IM has, his­tor­i­cally, been more of a stand­alone script than some­thing eas­ily inte­grated to an exist­ing web­site. Of course, since that first ver­sion, I’ve had a count­less num­ber of requests and inquiries regard­ing “inte­grat­ing with my web­site” or “using my cur­rent user database.”

Well, today that prob­lem is no more — Ajax IM 4.0 has been built with inte­gra­tion in mind. This means that, with a lit­tle work, you can use any exist­ing user data­base with Ajax IM by cre­at­ing a data­base library spe­cific to your cir­cum­stances. In the future, there are plans to have “stock” data­base libraries for many major scripts: Word­Press, phpBB, Pligg, etc.

The Javascript, now using jQuery, also includes a series of “bind­able” hooks (using $(AjaxIM.client).bind('hookName', function)), allow­ing you to exe­cute actions when Ajax IM does some­thing (such as login, receive a mes­sage, etc.). The doc­u­men­ta­tion for how to use these hooks is a work in progress.

If you just want to start using Ajax IM right away, with­out wor­ry­ing about inte­gra­tion, you can get the script up and run­ning in just 10 min­utes with one of the Quick Start (with Node.js) guides.

Auto­matic cross-page reloading

If you’ve ever used Facebook’s IM or GMail’s Chat fea­ture, you’ve prob­a­bly noticed how your con­ver­sa­tions fol­low you around the web­site, no mat­ter what page you are on.

The new Ajax IM does this too, and it does it auto­mat­i­cally. Using the lat­est HTML5 local stor­age (or Flash stor­age as a fall­back), con­ver­sa­tions and friend lists are retained between page reloads, no mat­ter how your web­site loads indi­vid­ual pages. As long as you load Ajax IM on each page of your web­site, your users can con­tinue chat­ting uninterrupted.

Them­ing

Built on a base of HTML and CSS, Ajax IM’s themes can be eas­ily mod­i­fied as long as you know a lit­tle CSS. The default theme is com­pletely func­tional and includes all cur­rent Ajax IM fea­tures; just make a copy of the folder and start edit­ing the theme.css file!

To change the theme, you sim­ply set the theme folder in the AjaxIM.init call.

Stand­alone high-volume mes­sag­ing using Node.js

PHP isn’t great for IM appli­ca­tions, which require users to both stay con­nected to the server for long peri­ods of time and make many short requests.

As an alter­na­tive, a “high-volume” server is included that will han­dle large num­bers of simul­ta­ne­ously con­nected users with rel­a­tive ease. It uses Node.js, a new “server-side Javascript” appli­ca­tion that is very fast and very easy to use. As long as you have your own VPS or ded­i­cated server, you can run the stand­alone server in con­junc­tion with Ajax IM.

Built-in login and reg­is­tra­tion forms

Ease-of-use is one of the pri­mary goals of this project, and part of mak­ing a mes­sen­ger easy to use is includ­ing some way for users to login and reg­is­ter. A Registration/Login wid­get has been included and can be eas­ily added to any page of your web­site (see the Quick Start guide for imple­men­ta­tion). The forms can also be eas­ily styled to match your web­site, as both the HTML and CSS are pulled from your cur­rent theme.

Bet­ter documentation

An open source project could be built well and work nicely, but what good is it if there’s no doc­u­men­ta­tion? That was a prob­lem with past ver­sions of Ajax IM — very lim­ited doc­u­men­ta­tion and unclear code cre­ated a lot of unnec­es­sary confusion.

With the new ver­sion comes a new aim: to keep updated, thor­ough doc­u­men­ta­tion on all parts of the frame­work. Right now, a num­ber of impor­tant parts of the archi­tec­ture and code have been doc­u­mented, and the rest is on the way. You can take a look at all the avail­able infor­ma­tion in the doc­u­men­ta­tion sec­tion of the website.

Git with the program

Ajax IM’s lat­est work-in-progress source is now kept on github, allow­ing you to down­load the lat­est ver­sion at any time. This also means that it will be easy to allow con­tri­bu­tions, should any­one like to contribute.

Work in progress

It is still very much a work in progress, so please bear with me as I work out any bugs both in the script and the web­site. How­ever, I hope you will give the new Ajax IM a try and even, per­haps, become a contributor.

You can skip to the end and leave a response. Pinging is currently not allowed.

12 Comments

  1. by Tim on February 15, 2010

    The node.js server is a really sweet idea. Works like a charm. Thanks a lot !

  2. by Steven Fauconnier on February 16, 2010

    Waw, you did a fan­tas­tic job! :)

  3. by Suprem on February 16, 2010

    lol! I just fin­ished my inte­gra­tion of ‘AjaxIM v3.41′ with ‘v1.1.11 SMF’ after 3 weeks and only change the nomen­cla­ture of the tables and fields of the data­base for oper­ate with ‘SMF v2. 0 RC2 ‘. = (

    any­way, i’ll fin­ished them and later i will look to the new ‘AjaxIM v4.0a’ which promises well, for find the way how inte­grate it with SMF

    i don’t know the new tech­nolo­gies used for this ver­sion but nei­ther i knew the pre­vi­ous ver­sion too xD, so i’ll start again from scratch =(…

    At least I will update my knowl­edge. Any­way thanks for the project evo­lu­tion!! thanx a lot.

  4. by Sunny Singh on February 18, 2010

    This is incred­i­ble! I haven’t looked into the doc­u­men­ta­tion yet but the demo looks great, and there seems to be a lot of good stuff going on. One fea­ture I need is pub­lic rooms like you had in the old ver­sion, but maybe that is pos­si­ble I’ll take a look.

  5. by Mehedi on February 20, 2010

    WOW!!!! Thanks for the New Version .

    Thanks
    Mehedi
    Web Designer & Developer

  6. by Clutch Dingo on March 2, 2010

    Will Ajax IM run with­out the node.js soft­ware on a win­dows server?

  7. by Oki S. Bayu on March 5, 2010

    Hi, great resource! can we made inte­gra­tion with Open­fire user account to cre­ate web base chat? thanks… :)

  8. by jiexiluan on March 5, 2010

    I like the new update, but i also loved the old 3.41 theme and drag­gable & popout windows.

    Will you be bring­ing back the 3.41 feel on the new 4.0 framework?

  9. by Josh on March 9, 2010

    jiex­iluan: No, I will not be bring­ing back the old 3.41 feel on the new framework.

  10. by jiexiluan on March 10, 2010

    :( ok. Well I appre­ci­ate all the work you have put into ajaxim so far. I been fol­low­ing this project for a good while now ;P

  11. by brajesh on March 16, 2010

    Great work Josh. Must say Huge improve­ment from the 3.41, I tried to inte­grate it to bud­dy­press in back Novem­ber and gave up because of the issues with on page chat window .

    The new ver­sion has it built in , Kudos to you for keep­ing the inte­gra­tion in mind.
    All the best for the future devel­op­ment :)
    regards
    Brajesh

  12. by mauren on April 2, 2010

    Awwww­some! thanks a lot!

Leave a comment

(required)

(will not be published) (required)


+ fou r = 8