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. Thanks, Andrew