App Engineと使うXMPPサーバーを探す
今朝のtwitterはSDK 1.2.5のリリースで賑やかでした。Task Queueはもちろん、さっそく使ってみたいのはXMPPです。ちょうどぴったりな要件があったのですごく嬉しい。。
ただひとつ勘違いしてました。。App EngineのXMPPサポートってXMPPクライアント機能のサポートなのですね。。XMPPサーバーを用意するには、
- Google Talkを使う
- すでにどこかで動いているXMPPサーバーを使う
- 自分でXMPPサーバーを立てる
のいずれかが必要。まずGoogle Talkですが、
- クライアントはGmailアカウントでログインする必要がある(事前にアカウントたくさん作っておいてプールして、クライアントにその都度配布するって方法もあるかな)
- そもそもGoogle TalkをSaaSとして利用して商用サービスを展開できるのか?(→Googleに問い合わせ中)
といった課題あり。
一方、自分でXMPPサーバーを立てるとなると、C10K問題に対応したしっかりしたサーバーがほしいところ。私も2000年頃にjava.nioでcometサーバーを書いたけど、XMPP実装なんて時間がかかることはしたくない。Google Waveの開発環境に使われているというOpenfireというのを見つけたけど、non blocking実装はこれからの様子。さらに探してたら、ejabberdはerlangで実装されててスケーラビリティしっかりしているようです。
http://www.process-one.net/en/technology/
ProcessOne has designed and delivered solutions that support more than 450,000 simultaneously connected users in a single domain.
ということで、ejabberdをEC2にでも乗せてXMPPサーバーを立てるのがいいかな〜と考え中です。もしGoogle TalkがSaaS対応しているという回答なら、そっちが理想ですが。
あと、AS3でXMPPを使うためのライブラリを見つけた: