I am looking for a package for monitoring the online status / presence of users. I’ve seen a lot of these user presence packages on Atmosphere (e.g.
3stack:presence), but I am still unsure which of these will fulfil my requirements best and - more important - how well they behave “in the wild”. So I would like to ask the community for their experiences. My use-case is a chat-like application with different chat rooms, but I need the online status of a user also in other places (like a users or a friends list).
Here’s my wish-list:
Store arbitrary data with the status. Not only should the set of status be customizable, but I would also like to store additional information like the chat room the user is currently in. It should be easy to change this status information, e.g. by setting the chat room number as soon as the user enters the chat room, and removing it if the user either leaves explicitly or a time-out occurs.
Status tracking should work across horizontally scaled servers. IIRC, there is some packages like
tmeasday:presencethat do not support this well. Others likes
3stack:presencestate that they clear the online status of all users if a new server is starting, and I am not quite sure impact this behaviour has if I use this in practice with a lot of users. I can imagine that this will cause a lot of load on the database if all users re-connect at the same time.
Which packages are you using, and what experience did you make with them?
EDIT: One functionality I’ve forgot: I also need stable support for mobile devices.