Firefoxと融合するインスタントメッセンジャー「Musubi」をリリースしました
Google Waveは、電子メールを置き換える可能性を秘めたWebサービスと言われています。
Musubiは、インスタントメッセージ(IM)を置き換える可能性を秘めたFirefoxアドオンです。
- リアルタイムWebコミュニケーター「Musubi」 1.0.0
- Google Talk(Jabber, XMPP)用のインスタントメッセンジャーです。
- インストール方法はMusubi Wikiにあります。
- 使い方はユーザーガイドにあります。
このアドオンで目指したのは、ブラウザとIMの融合です。
それは、Webアプリケーションに、HTTPを越えた更なる力、IMによるリアルタイム性を与えることです。
HTTPは、必要なときだけサーバに接続するので、更新があってもこちらからリクエストするまでわかりません。BBSやTwitterを何度もリロードするのはそのためです。
逆に、IMが使うXMPPは、サーバと接続を保って相互にやりとりするので、更新があればリアルタイムにメッセージが飛んできます。もうリロードはいりません。
Musubiでは、Webアプリケーションが自由にメッセージの内容を操作できるので、例えば以下のようなものが作れます。
チャット
- テキストをメッセージ
チェス
- 棋譜データをメッセージ
IMに似ているTwitterでいうと、例えば、Twitterでみんなとチェスをするというのは可能なわけです。
チェスの盤面は8x8の64文字で、140文字の制限に納まるから、みんなで棋譜データをつぶやけばいい。
だけど、Twitterを何度もリロードしなくちゃいけないし、棋譜データの解読が面倒くさいから何かWebアプリケーションが必要になる。
そこで、ブラウザとIMの融合が必要になってきます。
WWWは、3つの柱からなります。URI、HTTP、HTMLです。そこにIMがどう融合するか。
xmpp: URI
Musubiでは、新しくxmpp:というURIを定義しました。
人にリンクを張る(ブックマークすると、Twitterでいうフォローになるようにしてある)。 xmpp:teruakigemma@gmail.com
その人とチャットをするリンク xmpp:teruakigemma@gmail.com#http://musubi.im/chat/
ジュリエットがロミオとチャットをするURI xmpp://juliet@localhost/Musubi/romeo@localhost#http://musubi.im/chat/
HTTPとXMPP
HTTPと別に、XMPPサーバとの接続を持ちます。
HTTPで静的なデータを、XMPPで動的なメッセージを、と住み分けることができます。
Google Waveは、Comet(HTTP long-polling)という技術で、HTTPの上でリアルタイム性を実現していますが、
スケーラビリティに不安があります。HTTPで無理をせず、専用に設計されたXMPPを使うのがMusubiです。
HTML
さきほど紹介したチェスなどは、誰でもHTMLとJavascriptで簡単に作れます。
musubi.jsを読み込んで、関数を2つ覚えるだけです!
// 初期化(メッセージを処理するrecv関数を渡す) Musubi.init(recv); // メッセージを送る。こんにちはこんにちは! Musubi.send(<message><body>こんにちはこんにちは!</body></message>);
弱点
Firefoxに依存することと、Google Talkがあまり使われていないことです。