スティルハウスの書庫の書庫

はてなダイアリーで書いてた「スティルハウスの書庫」を移転してきました。

AS3で動くXMPPクライアントを探す

GAE/Py+FlashXMPP接続したい! この目標に向けていろいろ調査中です。

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サーバーのアカウント「@appspot.com」に向けてメッセージを送ると、そのままエコーして戻ってきます。

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をサポートしていません。

もうひとつ、こんなのもありますが、デモ等がなくてちょっと未完成っぽいです。試すのに時間かかりそうです。

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#