読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

接続クライアント数の数え方

(オリジナル記事よりもっと簡単にかけたので更新しました。(2014年12月23日))
Stackoverflowでも色々苦労されているようです。

サーバー側でこんなコード(CoffeeScript)を書きました。

NumOfSessions = new Meteor.Collection 'numofsessions'

Meteor.publish ->
    NumOfSessions.find()

Meteor.onConnection (handle) ->
    NumOfSessions.update {}, $set: num: Object.keys(Meteor.server.sessions).length
    handle.onClose (a) ->
        NumOfSessions.update {}, $set: num: Object.keys(Meteor.server.sessions).length
        retrun
    return

Meteor.startup ->
    # singleton
    NumOfSessions.upsert {}, $set: num: 0