Subscribed unsubscribe Subscribe Subscribe

Heroku+Node.js+Redis+MongoDB使って簡単リアルタイムアクセスカウンター作ってみた

Node.js

いろいろ作ってみる練習として。
http://realtime-counter.herokuapp.com/
https://github.com/sugyan/node-realtime-counter

<script type="text/javascript" src="http://realtime-counter.herokuapp.com/counter.js"></script>
<script type="text/javascript">
  new RealtimeCounter('4e78b7cb3bab067f7e6a1514').onIncrement(function (count) {
    ...
  });
</script>

と、JavaScript読み込んで指定したIDを使ってJSを数行書いておくと、どこかで同じIDのものが読み込まれたタイミングで数字を更新できる、というもの。
下の例を別窓/別ブラウザで幾つか開いてみると確認できる…はず…

realtime-counter - jsdo.it - share JavaScript, HTML5 and CSS

HerokuでNode.jsのstackを作って、addonsでredisToGoを使ってセッション管理してGithubのOAuthログイン、MongoHQを使ってカウンターの管理をする。counter.jsではsocket.io-clientを読み込んだ上で[]http://realtime-counter.herokuapp.com/[]のsocket.ioサーバにxhr-pollingで繋ぐようにして、IDを指定してnewしたタイミングで同じIDで接続しているclientにbroadcastする。更新されてbroadcastされたタイミングで呼ばれる側でテキストを書き換えるなりなんなり自由にすれば良い、というかたち。
使いどころがあるのかどうか分からないけど、、、アクセスカウンターがリアルタイムに数値更新されるようになったらキリ番とかどうなっちゃうんでしょう。狙うために何度もリロードしていたあの頃が懐かしいですね。