作りかけのあのがっきwidgetを改良するのが先という気もしなくもないのだけど、HTML Canvasをいじるのがメインの作業なのでいまいち気分が乗らず、どうせならやりたい所をつまみ食いしてしまおうと思い、waveプロトコルの実装を動かして遊んでみることにした。google自身がfedoneと呼ばれるリファレンス実装を提供しているので、動かすのは比較的簡単なはずなのだけど、XMPPサーバが必要になって、少しややこしい。
waveプロトコルではXEP-0060ことXMPP-PubSubが必要になる(XMPPはもともとjabber IMの標準化のためにあったようなものなのだけど、現在ではXMPP Coreに準拠するさまざまな仕様が作られていて、pubsubもそのひとつ)。なので、これを実装していないものを使うことはできない。最初、jabberd2で実験しようと思っていたのだけど、これにはpubsub実装が含まれていなかった。
仕方ないので、pubsubがありそうなXMPP実装を検索したら、openfireというものが見つかった。後になって気付いたが、waveのサイトにはopenfire, prosody, ejabberdといった実装を使って動かせるという説明があった。ejabberdを動かすには巨大なerlangをダウンロードしなければならなかったので、今回はopenfireを使うことにした(openfireはJavaで書かれている)。
最初、fedone-server-0.2.jar を直接起動しようとして、あれこれコマンドラインオプションを指定していって、それでも動かすことは出来たのだけど、先の説明のページに手順がひと通り書かれていて、その通りにやった方が簡単だった。ともあれ、これでサーバもクライアントも動かすことができた。
localhostでC/S接続が出来たら、次はやはりfederationに進みたかったわけだが、どうやらgooglewave.com はまだfederationに対応しておらず、wavesandbox.com のアカウントが無いとダメなようだ。wavesandbox.comのアカウントは持っていないので、ここでゲーム終了である。
実運用しているwaveとの間でfederationの実験が出来るようになったら、今度はjabber-netなどを使って、ありもののリファレンス実装ではない独自の実装を作って通信できるようにしてみたいと思っているのだけど(waveはgoogleだけのものではないはずだ)、それは着手するとしてももう少し先の話だろう。今でもfedoneを複数稼働すれば実験できそうな気もするけど、そこまで今急いでやることもないだろう。
まあ、fedoneを動かしただけでは、まだwaveプロトコルを体感できたとは言い難いのだけど、とりあえず動かすことは出来たので良しとしよう。
Leave a comment