Tuppari - WebSocket on Your Cloud -
Tuppari とは
東京Node学園 6時限目で発表した Node.js で作られた Pusher クローンです。
簡単に言うと WebSocket を利用した大規模 Broadcast に特化したサービスです。
インフラとしては Amazon Web Services (以降、AWS)上で動かすことに最適化されていますが、AWS以外でも動かすことは可能です。つまり、クラウド上に自分自身の Pusher を構築することが可能になります。
現時点では Pusher の機能には追いついていませんが、今後も鋭意開発を進めていくので、是非使ってみてください。
あと、WebSocket を使うので、IE9 以下では動きません。
8/15 追記: v0.2.0 から IE もサポートしました。
詳細は以下の記事を参照して下さい。
Tuppari コミュニティ始めました & IE に対応しました - Scalaとlift のはずだった ・・・
Tuppari 公開記念ハッカソン
興味があればどうぞー。
ご希望があれば、Tuppari の使い方、各自の環境へのインストール方法などサポートします。
ソース
CLI & npm モジュール: https://github.com/tuppari/tuppari
デモ
- 通貨レートの Push 更新:
- GeoタグにもとづいてTweetをGoogleマップ上に表示:
試してみよう
Tuppari は各自のインフラで動作させることを想定していますが、インストール済みサンプルとして、 https://api.tuppari.com でサービスを稼働させてありますので、まずはお試しください。
公式ドキュメント: https://github.com/tuppari/tuppari/wiki
アカウントの作成
まずは、アカウントを作成します。
アカウント名は他人と同じものは使用できません。
tuppari register [YOUR_ACCOUNT_NAME] Password: [ENTER YOUR PASSWORD] Create new account name "[YOUR_ACCOUNT_NAME]" success.
ログイン
アカウントを作成したらログインします。
tuppari login Account Name: [ENTER_YOUR_ACCOUNT_NAME] Password: [ENTER_YOUR_PASSWORD] Login success.
アプリケーションの作成
tuppari create [YOUR_APPLICATION_NAME] Create a new application named "[YOUR_APPLICATION_NAME]" success. Following is the application Information to access from your code. { "applicationId": "[SHOW_YOUR_APPLICATION_ID]", "accessKeyId": "[SHOW_YOUR_ACCESS_KEY_ID]", "accessSercretKey": "[SHOW_YOUR_ACCESS_SECRET_KEY]" }
ここで出力される情報は後で使うので、メモしておいてください。
HTML ファイルの作成
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <!-- 1. Include the Tuppari client JavaScript libraries on your page from CDN --> <script src="http://cdn.tuppari.com/0.1.0/tuppari.js"></script> <script> // 2. Instantiate connection object to tuppari server. var client = tuppari.createClient({ applicationId: 'YOUR_APPLICATION_ID' // Replace this with your Application ID. }); // 3. Create channel you want to use. var channel = client.subscribe('your_channel'); // 4. Listen for some events on you channel channel.bind('your_event', function (data) { console.log('An event was triggered with message: %s', data); }); </script> </head> <body> </body> </html>
Node.js のコードからイベントを発行する
package.json と app.js を以下のように作成します。
package.json
{ "name": "helloworld", "version": "0.1.0", "dependencies": { "tuppari": "0.1.0" } }
app.js
var Tuppari = require('tuppari'); var tuppari = new Tuppari({ applicationId: 'YOUR APPLICATION ID', accessKeyId: 'YOUR ACCESS KEY ID', accessSecretKey: 'YOUR ACCESS SECRET KEY' }); var channel = tuppari.join('your_channel'); channel.send('your_event', 'hello world', function (err, res, body) { if (err) { console.error(err); } console.log(res.statusCode, body); });
ファイルを作成後、以下のコマンドで実際のイベント発行します。
cd [YOUR_WORKING_DIRECTORY] npm install node app.js
ブラウザのコンソールに以下の文字列が出力されていることを確認してください。
An event was triggered with message: hello world