C2DM - 1つの送信者IDで複数のデバイスにメッセージをプッシュする方法

私はC2DMのためにサインアップした1つのGmailアカウントを持っています。

私は、このアカウントのおかげで(各デバイスの登録IDと認証トークンをリクエストした後)すべてのデバイスにメッセージを提供できるというアプリを望んでいます >アプリがインストールされています。

私はこの方法でC2DMを使用することが可能かどうかを知りたい。

どうもありがとう

(詳細については、私に尋ねてください..)

ps私はc2dmをエミュレータで動作させましたが、もちろんいくつかの電話が必要になるので、私は前に書かれたものを試すことはできません。

0
まったく! Androidアプリはもちろん、新しいコンテンツが利用可能であることをアプリをインストールしたユーザーに通知します。
追加された 著者 psk,
正確には、以前に関心のあるデバイスを検出(選択)してから、第3部サーバーでニュース(私の場合)が利用可能であることを通知します。私は彼らが読んでほしいと思うニュースで更新されたユーザ(電話)であるためにc2dmが必要です
追加された 著者 psk,
あなたの質問には何らかの説明が使われる可能性があります。あなたのアプリがあなたのc2dmアカウントに登録されているすべてのデバイスに通知を送信できるようにしたい場合、アンドロイドアプリ自体が他のデバイスの同じアプリの他のインストールに通知を送信すると言いますか?
追加された 著者 hankystyles,
なぜデバイスからのc2dm通知を発信したいのですか?その種のことは、すべての登録idsを集約し、通知を必要とするものを決定するバックエンドコンポーネントから行うべきです。
追加された 著者 hankystyles,

3 答え

私があなたの問題を正しく理解していれば、あなたは答えられません。

あなたが到達したい各デバイスに対して、Googleサーバーに1つのhttpリクエストを送信する必要があります。

サービスに登録したすべてのユーザーにメッセージをブロードキャストする方法はありません。

私の場合、私はすべてのユーザのためにニュースレターを送るので、何百万人ものユーザとの接続を開くのは費用がかかるので、イライラします。

スケーラビリティの問題を解決するために、すべてのユーザー登録をループし、GoogleサービスへのHTTP接続を作成する単純なappengine map-reduceタスクを作成しました。これは配信ニーズに合わせて動的に新しいサーバーをインスタンス化するため、

0
追加された
私が実装した方法では、1人のユーザーにつき1回だけ登録を行います。ユーザーの登録は、サーバーではなく電話に保存されます。私はこの方法で、ユーザーへの私のメッセージの80%が実際に電話に届くことが分かりました。 ACCOUNT_MISSINGの問題については、私のアプリケーションではC2DMが主要な機能として必要ないため、その問題は無視しています。
追加された 著者 Rafael Sanches,
私は「レシピ検索」というアプリを持っています。スタックオーバーフローのような機能があり、ユーザーはレシピについて質問します。ユーザーがその質問に返信するたびに、そのスレッドを聞いているすべてのユーザーにC2DM通知を送信します。これは単なる例ですが、C2DMはアプリを通じて広範囲に使用されています。
追加された 著者 Rafael Sanches,
まあ、それは私が意味するものではありませんが、返信いただきありがとうございます!私はメッセージをブロードキャストすることは不可能だと読んだが、私の問題はこれより前である。ただ1つの役割の電子メールで複数の(100、1000)デバイスにメッセージを送ることができるかどうかを知りたがっている。何百万人ものユーザーがいますか?)。たとえば、クォータ "TOO_MANY_REGISTRATIONS"はこの混乱のすべてに関与していませんか?それは1人のユーザがc2dmに100回以上登録することを妨げるようです。PsあなたはどのようにしてACCOUNT_MISSINGの問題を解決しましたか?ユーザーに新しいGoogleアカウントの作成を依頼していますか?ありがとう
追加された 著者 psk,
どのようなプロトコルを使用していますか?私のアプリは実際にはあまりにもニュースレターです..ありがとう!
追加された 著者 psk,

C2DMは廃止されました。 GCMはそれを置き換え、1つのHTTP POSTで1000台のデバイスにメッセージを送信することができます。

C2DM->GCM Migration Guide: http://developer.android.com/guide/google/gcm/c2dm.html

0
追加された
間違いなく良い...
追加された 著者 psk,

あなたの質問とコメントには、送信者IDを1つだけ使用して不確定な数のデバイスにc2dm通知を送信できるかどうかが疑問です。

それはまさにc2dmが動作する方法です。バックエンドサーバーで使用する送信者IDを1つ作成し、c2dm通知に登録するために送信者IDをアプリで使用します。バックエンドはすべての登録IDを収集し、あなたの1つの送信者IDを使用して、通知関係者をプッシュします。

0
追加された
はい、それが私がc2dmを選んだ理由です。しかし、1つのルールメールでメッセージをプッシュできるデバイスの数に制限があるかどうかを知りたいと思います(1日あたり20万メッセージの制限があることはわかっています)。あなたには限界がないと確信していますか?回答ありがとうございます!
追加された 著者 psk,
それでは、TOO_MANY_REGISTRATIONSのクォータは電話のアカウントで参照され、ロールのメールではありません。それどころか、電子メールの役割には制限はないようです。さて、たくさんの人に感謝します!
追加された 著者 psk,
@ pskええ、あなたが指摘している制限はクォータであり、これは送信者IDの側で私が知る唯一の制限です。あなたのコメントで言及したTOO_MANY_REGISTRATIONSエラーは、電話機のサインインしたアカウントが、あまりにも多くの異なるアプリで同時にc2dmに登録されたときのものです。
追加された 著者 hankystyles,