Facebook – Force an idle chat status in Facebook while still working in it and without going offline

facebookstatus

One of my friends had asked me about how to keep chatting or working on Facebook and show idle status on Facebook, and I didn't find any way to force Facebook's chat to go idle.

I know that in order to have your status Idle you must not use Facebook for at least 10 minutes, if I am not wrong. But, I think there should be some way to change the status for chat, right?

How do I to do that?

Note
Don't propose to go offline for a chat. He knows it already, but he doesn't want to be offline on a chat.

Best Answer

In short it is not efficient/possible for the Facebook team to deal with it.

The way I see it, idle is used to show that the user's attention is not in browsing Facebook. To elaborate, a user can be playing an intensive game (Bejeweled/Farmville) and end up in idle, but as soon as focus moves away from the game, online status resumes.

The best way is to go offline but for specific people using friend lists.

And here is an engineer from 2008 explaining why this is difficult

The most resource-intensive operation performed in a chat system is not sending messages. It is rather keeping each online user aware of the online-idle-offline states of their friends, so that conversations can begin.

The naive implementation of sending a notification to all friends whenever a user comes online or goes offline has a worst case cost of O(average friendlist size * peak users * churn rate) messages/second, where churn rate is the frequency with which users come online and go offline, in events/second. This is wildly inefficient to the point of being untenable, given that the average number of friends per user is measured in the hundreds, and the number of concurrent users during peak site usage is on the order of several millions.

Surfacing connected users' idleness greatly enhances the chat user experience but further compounds the problem of keeping presence information up-to-date. Each Facebook Chat user now needs to be notified whenever one of his/her friends (a) takes an action such as sending a chat message or loads a Facebook page (if tracking idleness via a last-active timestamp) or (b) transitions between idleness states (if representing idleness as a state machine with states like "idle-for-1-minute", "idle-for-2-minutes", "idle-for-5-minutes", "idle-for-10-minutes", etc.). Note that approach (a) changes the sending a chat message / loading a Facebook page from a one-to-one communication into a multicast to all online friends, while approach (b) ensures that users who are neither chatting nor browsing Facebook are nonetheless generating server load.

[Source - Facebook Engineering Notes - Facebook Chat ]