Friday, March 14, 2008

How meebo works? (My guess of how they might be doing it!!)

We all know how useful and good meebo is.

The web based instant messaging client is a big brand now on its own and has been growing exponentially after it received funding a few months back.

Just out of curiosity, I started digging into the possible ways that meebo might have been implemented.

After a few minutes of research I think I have a vague idea of the components involved.

1. At the heart of meebo's backend is the open source API called libgaim which is under the pidgin project now. So technically anything that pidgin can support will be supported by meebo too :-)

2. Wrappers that write to a socket. The libgaim api sends signals that can be registered to callbacks that handle the signals. I believe the signals are being written to a port.

3. Direct Web remoting / Flash based remoting. This is the layer that perfoms the task of the web based client getting the messages that are being written to the socket from the wrappers that listen to gaim signals.

4.A small UI layer with Ajax frameworks like dojo/scriptaculous that gives you that cool look and feel.

Off course there might be hundred of tweaks that meebo would have done , but this I see is the core engine

There you go. :-) If you can do this , you can have your own version of meebo for your company, office.

Thanks,
Venkat

2 comments:

Vengu said...

Hi Sanjay,

Its a very trick proposition. See Meebo is not a delivered software like pidgin. And when companies take open source software they can buy a commercial license of it too. Oracle has taken apache and built the Oracl http servcer on top of it and its not open source. Mysql has a commmercial license which companies buy.. I guess meebo would have got the commercial license. Not very sure about this.

And my doubt is if meebo modified the source code at all?? If they were using it just as it is, they dont have to share anything :-)

Anonymous said...

Hi,

How simple is this, technically?

Do you think you could set a similar page up?