2011年04月13日

もともとはヌーブラアプリを作るためにiPhoneの開発環境を作ったのですが、ちょっと気が向いてim.kayackみたいなのを作ってみました。
im.kayack使えば良いじゃんって話もありますが、着信音を僕の好きな音とか声とかにしたかったので作ったのです。
通知の時にならす時には、hoge.appを作った時に一緒にコンパイルされてないと駄目なんです。
同時にコンパイルされちゃってさえいれば、通知するサーバ側の都合で音声を選べるという感じ。

yappocallは何かというと、YappoのiPhoneに好きな音声と共に秘密のメッセージを送れる超便利サービスです。
http://seiitaishougun.com/iphone/yappocall.cgi
で、いつでもどこでも好きな時に僕宛に秘密のメッセージを送れます。
人生相談、ピザの注文、プロポーズまで幅広くお使い下さい。

すでに、ランチのお誘い、ワインのお誘い、ごじます、おススメマッサージ店のご紹介、地震速報、新入社員の愚痴、AKBのセンターはtokuhiromがなるべきというご提案、挿入持ってくる、じゃーん!、おごれアピールなど多種多様のcallを受けております。

なんでこのエントリを核期になったかというと

これ仕組みしりたいです・・・

っていうcallをされたからですね。

仕組みはiPhoneのAPIでRemote Push Notifiyとかそういう仕組みが用意されてるので、頑張って実装して下さい。
そんな頑張んなくてもPush通知使いたい!ってAPIを叩くと自動的にappleのサーバに問い合わせて、その端末に紐づいた Device Token を引数にどっかのメソッドが delegate されて呼ばれるので、そこで好きなように device token をサーバ側に持ってくれば良いだけですね。
簡単です。

サーバーの方はとっても簡単で yappocall.cgi を用意して、 worker.pl をローカルで実行させるだけです。
Apple の Server に通知を送りつける専用プロセスが必要なのが面倒ですが、短時間に接続するとbanされる可能性もあるってtypesterのお兄さんが言っていたのでsocketを使い回してbanを防ぐ作戦をしています。
CGI と Worker の間の通信は今大人気の MessagePack を使ってるので安心高速ですね!

残念なのは Net::APNS::Persistent は、 socket 切れたら放置される実装になってるので、直すのも面倒なので前回の通知処理から30分以上たってたら socket 繋ぎ直すようにしてあります。

烏賊ソース

Posted by Yappo at 2011年04月13日 02:21 | TrackBack | Perl
Comments
Post a comment









Remember personal info?






コメントを投稿する前に↓の場所にnospamと入力してください。