[jdev] SoC idea: providing multiplexing support

Andrew Yates andrew.yates at gmail.com
Tue Mar 18 20:23:27 CDT 2008

Hi all,

I have been playing with the idea of using Jabber as a multiplexing
instant messaging client for a little while now, and would like to
know what others think. By multiplexing I mean that a user could be
logged in to the same account from several locations at once (a
separate client would be running at each), with messages that are sent
or delivered appearing at all of the locations. The user would have
the option of preserving state across the various connected clients,
so that closing a conversation window on one would close it on the
others, opening a new conversation window would open it everywhere
else, etc. The idea is that the user can continue his current
conversations while moving across computers, and can login to
transports that only support one login location at a time (e.g. MSN)
from multiple computers at once.

Several uses for this come to mind. The above description may be
confusing, so I'll give a usage example.
A user has a jabber client running on his desktop and is logged into
an account with several transports, so that jabber may be used to
contact AIM/MSN/other contacts. The user leaves his desktop and boots
up his laptop at a different location. He launches a jabber client on
the laptop and logs in. If he has decided to preserve state across
connections, any conversation windows that were open on his desktop
will be opened on his laptop and populated with a portion of the
conversation. The user says something in a conversation window that
was open on the desktop. What the user says, and anything the contact
he is chatting with says, appear in the conversation windows on both
the desktop and laptop. The user can move between laptop and desktop
freely, and anyone he is talking with will not notice.

As far as implementation, a protocol extension would be needed to
preserve state and to make messages show up in all the required
conversation windows. Also, a proxy sitting between clients and
jabberd would need to be created, or an existing jabberd modified.
Clients would obviously need to be modified as well to support the
protocol extension.

I love this idea and would find it extremely useful, but I am well
aware that I may be the only one. What does everyone else think? I'm
considering using this idea on my SoC application, so any input would
be greatly appreciated.


More information about the JDev mailing list