Thursday, April 07, 2005
Presence Indicators
Your IM client is silently broadcasting a handfull of presence indicators to all of the buddies on your BuddyList. These indicators tell us to what degree you are available for chatting. Different states of presence include,
- offline,
- online,
- idle,
- away,
- away + idle
- Ready to Engage (for example, on Skype as "Skype Me")
In the BuddyGopher Development Wiki, you'll see us refer to these presence broadcasts as buddy_in notifications.
User software only needs to broadcast its presence state once, when it has changed. When you put up an Away Message on the AOL Instant Messenger network, your software broadcasts a presence notification to the AOL servers that says, "Hey! I'm away." and "Here is my Away Message: xxxx" These messages go to the AIM servers, and then the AIM servers tell everybody who has you on their BuddyList that you are now in an Away state.
Some clients are notoriously terrible about re-broadcasting their presence information over and over and over again. It's akin to calling your boyfriend and saying, "Hey! I'm bored!" every commercial break. A few versions of Trillian had problems like this. I have seen Trillian clients continuously broadcast their state once every minute. For one or two hundred buddies on your personal BuddyList, this is not a problem. For a system like BuddyGopher, where we have the largest BuddyList in the world (69,190 buddies at the time of this post), accidentally loquacious IM applications cause us to consume a lot of extra processing power.
Most people use the standard AIM client, which is the right thing to do.