AS3で動くXMPPクライアントを探す
GAE/Py+FlashでXMPP接続したい! この目標に向けていろいろ調査中です。
GAE/PyとGoogle Talkをつなぐ
これはとても簡単にできました。特に参考になったのは、civicさんの
Google App Engine の XMPPをPythonで書いてみる-1というページ。これをまねして、
class XMPPHandler(webapp.RequestHandler): "Sendback echoes to a XMPP client" def post(self): message = xmpp.Message(self.request.POST) message.reply(message.body)
って感じのコードを書いときます。Gmail画面上のGoogle Talkクライアントの連絡先に登録したGAE/Pyサーバーのアカウント「
Flash(Flex)からGoogle Talk/ejabberdにつなぐ
今回はクライアントがFlash(Flex)です。XMPPサーバーは、前のエントリにも書いたように、Google Talkで行けるのか、それともejabberdみたいなXMPPサーバーを立てる必要があるのか、検討中。理想的にはGoogle Talkにつないで、GAE/Py以外のサーバーは立てたくないですけどね。
まずはGoogle TalkまたはejabberdにつながるFlash AS3ライブラリを探しました。
結論から言うと、どうも現時点ではTalkにつながるものはなさそうです!!orz orz
- seesmic-as3-xmpp
- ejabberdには問題なくつながりました。
- Talkに接続しようとするとエラーがでてリトライを繰り返します。ここでレポートされているのと同じ問題です。
実はseesmic-as3-xmppは、Talkで必須となるTLS接続をサポートしている(orしようとしている)ので、Talkに接続できそうな確率がもっとも高いAS3クライアントです。もうちょっとがんばってもらえると行けそうなのですが。。XMPP接続のためのAS3ライブラリは以下のXIFFもありますが、TLSをサポートしていません。
- XIFF API 3.0.0-beta1
- http://yourpalmark.com/2009/02/23/xiff-gui-as3-xmpp-demo/
- http://www.velloff.com/?p=38
- いずれもTalkには接続できませんでした
もうひとつ、こんなのもありますが、デモ等がなくてちょっと未完成っぽいです。試すのに時間かかりそうです。
GAE MLでも、XMPP+Flashなんとかならないかという議論がありました。決定打はないようです:
http://groups.google.com/group/google-appengine/browse_thread/thread/4b96338e225ddeea/952c2e291607f5ac
10/8追記
seesmicの中の人がtwitter上でxmppについてつぶやいてるのを発見したので、上記バグについて突撃インタビューしてみました。
@bear Hi, I just tried as3-xmpp to connect to Google Talk, but failed with the same problem reported here: http://ow.ly/tgNb Any ideas? @kazunori_279 I will make sure the dev who works with this sees your bug - thanks for the report @kazunori_279 initial hunch from the dev is that it's the SSL code we had to use inside the lib - he's been working on this bug before @bear I see... it must be the hurlant TLS code. Any plan to support Google Talk by fixing it? @kazunori_279 oh for sure - from what he tells me it's just a tricky bug to track down as he doesn't always duplicate it @bear Really.. I can always duplicates it: it repeats connect & disconnect. Please let me know whenever you want me to test a fix. @kazunori_279 I've passed your twitter id to the dev and will touch base with him tomorrow (he's US PDT timezone) - thanks for the offer @bear thanks so much for the arrangment!
ってことで、「for sure」というお返事に期待しましょう!
10/9 追記
なんか対応開始してくれたみたい。。
http://code.google.com/p/seesmic-as3-xmpp/issues/detail?id=4
10/9 追記2
Google Talkを商用利用していいか、MLに問い合わせてみました。
http://www.google.com/support/forum/p/Talk/thread?tid=7635fea69d779e4a&hl=en
10/14 追記
どちらも何の反応もなし。。
ところでseesmicの中の人上記バグについて8月に問い合わせしてたのを発見。返事なしorz
http://groups.google.com/group/as3crypto/browse_thread/thread/122e46ed1b1a07f0#