Meteor connection count

What would be the best way to record a live count of connections using the Meteor framework? I have the requirement of live sharing users online and have resorted to creating a collection and just replacing a record on initialize for each user, but the count seems to reset, what I have so far below, thanks in advanced.

Counts = new Meteor.Collection "counts"

if Meteor.is_client
  if Counts.findOne()
    new_count = Counts.findOne().count + 1
    Counts.remove {}
    Counts.insert count: new_count
  Template.visitors.count = ->
    Counts.findOne().count

if Meteor.is_server
  reset_data = ->
    Counts.remove {}
    Counts.insert count: 0
  Meteor.startup ->
    reset_data() if Counts.find().count() is 0

You have a race condition when you trust in "get count value, remove from collection, insert in collection the new count". Clients can get the value X in the same time. It's not the way to go.

Instead it, try to make each client insert "itself" in a collection. Put a unique id and the "time" it was inserted. Use Meteor.Method to implement a heartbeat, refreshing this "time". Clients with too old time can be deleted from the collection. Use a timer in the server to remove idle clients.

You can check some of this here: https://github.com/francisbyrne/hangwithme/blob/master/server/game.js