Beaconpush is a good alternative for doing this. We support user presence and you can use the API to find out what users are connected. You can even log out users from the API.
We have a contributed Ruby library (called Dimma) made by one of our users. Don't think it's EventMachine based though. Read more at https://github.com/Burgestrand/Dimma
node.js with socket.io is also a nice alternative. Played with it somewhat myself and I like it! But hosting it yourself will make you deal with scaling, deploying, uptime and hosting in general. Not exactly stuff you want to focus on when developing things on a tight schedule.
So if you're asking me, I'd naturally say Beaconpush (http://beaconpush.com) :)