ゆれくるコール for AndroidのPush通知技術
ゆれくるコール for AndroidのPush通知は、XMPPという通信プロトコルを使用しています。
弊社でXMPPサーバを運用し、それを介して各端末にPush通知を送信しています。
Extensible Messaging and Presence Protocol - Wikipedia
ゆれくるコール for Androidは、ゆれくるコール for iOSの後に開発されました。
ゆれくるコール for iOSは、APNSを使用してPush通知をしています。
Apple Push Notification Service - Wikipedia
APNSはAppleのPush配信サーバをしてPush通知をするしくみです。
そのため自前でPush配信サーバを運用する必要がなく、比較的楽チンにPush通知を実現することができます。
AppleのPush配信サーバにPush通知の配信依頼をするしくみは必要ですけどね。
ゆれくるコール for Android開発時も、同様のサービスの利用を検討しました。
当時はGoogleの同様のプッシュ通知のしくみとして、C2DMというものがありました。
現在はGCMというプッシュ通知のしくみがありますが、C2DMはそのGCMの前身にあたる実験的サービスでした。
Android Cloud to Device Messaging Service - Wikipedia, the free encyclopedia
こちらもAPNSとほぼ同様のしくみで、GoogleのPush配信サーバをしてPush通知を行います。
当初はC2DMの利用を検討しましたが、パフォーマンスの検証を行ったところ、緊急地震速報の配信に必要となる程度のパフォーマンスは残念ながら出ませんでした。
#ちなみにGCMは同一の通知内容であれば1,000件までのまとめ送りもでき、パフォーマンスはC2DMよりも大幅に向上しています。
そのため別の方式でAndroid端末にPush通知を行う必要にせまられ、なんやかんやあって(ヲイ、乱暴ダナ。。)最終的に選択したのがXMPPでした。
#なんやかんやはまた別の機会にでも。。
XMPPを利用する場合は、XMPPサーバを介して通信を行う必要があり、自前でXMPPサーバを用意する必要があります。
そのためなかなかめんどいんです。。
GCMがある現在であれば、Push通知は用途によってはGCMで十分事足りるでしょうし、なんといっても自前でPush配信サーバを運用しなくてもいいことは大きなメリットでしょう。
ただ、XMPPを使うメリットとしては、Google謹製AndroidでないAndroid端末に対してもPush通知を行うことができることがあります。
GCMはGoogleのサービスなので、Google謹製Androidでないと動作しないんですよね。
Android Open Source Projectから取ってきたAndroidとかでは動作しません。
またXMPPという標準のプロトコルを使用しているので、Androidだけでなく、XMPPを解釈してくれるアプリや機器であればどこにでも通知を送ることができます。
XMPPは元々はメッセンジャーで利用されることを想定されたプロトコルでしたが、最近はM2Mなんかでも利用の用途が広がっているようですね。
弊社ではゆれくるコール for Androidの開発・運用を通じてXMPPの技術、ノウハウの蓄積が豊富にございます。
XMPPを利用したシステム開発、コンサルティング等にご興味があれば、是非是非ご連絡ください~。
結局宣伝かよ!