views:

154

answers:

3

I want to know how gmail chat allows the user to connect to AIM and then chat as if he were logged on to AIM.

Is this easy to make? How can it be done?

Does anybody know of any similar open source tools?

Thanks!

+1  A: 

You could take a look at Pidgin, which is an open-source, cross-platform, multi-service IM client. They support both Google Chat and AIM (among a number of other services), so you could get some ideas from it. However, it is a desktop application, so it probably won't help with the UI. But you can probably get some server-side ideas from their implementation or perhaps even find a way to use it server-side.

Thomas Owens
Pidgin is a GTK program that uses libpurple to communicate through the different protocols. On Mac OS X, Adium is a Cocoa GUI for libpurple. Meebo uses libpurple.http://developer.pidgin.im/wiki/WhatIsLibpurple
Jacob
@Jacob: Have you had experience with libpurple? Do you know if it is feasible to create a web based front end? (I'm not sure how much work it took to make the first version of Meebo)
chris
+1  A: 

On top of figuring out libpurple for the backend messaging protocol work, you'll need to work out either a 'Comet' (http://cometd.org/) system that can handle a continuous connection, or something slightly more naive like 'long polling.' This is necessary in order to implement a 'push' type feature for when the corresponding user sends a message inbound. This also requires choosing a web server that can handle sleeping, but open threads without spewing memory. One of the more common choices is Jetty (http://www.mortbay.org/jetty/).

Dojo is known for its compatibility and innovation with Comet, which is the protocol that google talk uses. So you might consider using it instead of jQuery, however, people have gotten jQuery to work just fine with it as well.

It is certainly possible, but note that it is not necessarily an easy task for most.

Alex Sexton
+1  A: 

If you are talking about programming here's the source example: http://code.google.com/p/xmpphp/ in PHP. And for java Smack ( http://www.igniterealtime.org/projects/smack/index.jsp ) will be a good choice.

StarWind Software