5

サードパーティ サーバーのリストを管理し、それらのサーバーに情報をポーリングできるアプリがあります。これらのサーバーは互いに独立しているはずです (そして、私の管理下にない可能性があります)。

ここで、常にアクティブなポーリングを回避するために c2dm 通知を実装したいと考えています。サードパーティのサーバーは、Google に登録した後、サードパーティのサーバーを公開しsenderId、クライアントが C2DM を送信できるようになります。registrationId

ここで私の質問:複数の c2dm 送信者に対して同じアプリケーション パッケージから登録することは可能ですか? その場合、正しいローカル サーバー構成エントリを更新できるように、登録 (特に登録解除) プロセスをどのように区別すればよいでしょうか?

私が見つけた唯一のリソースは、この google groups スレッドでしたが、しばらく回答がありませんでした。お役に立てれば幸いです。

注:これは登録に関するものです。メッセージを送信するとき、サードパーティのサーバーはサーバー名を挿入できるため、メッセージ ハンドラーはそれらを区別できます。しかし、Google のサーバーへの登録プロセスでは、ユーザーが定義した情報を自分のサーバーに戻すオプションがないようです。BroadcastReceiver

4

2 に答える 2

3

これは関連している可能性があります:http: //groups.google.com/group/android-c2dm/browse_frm/thread/e2095d79c80de4c1/37325b1b1e5ec1e1?lnk = gst&q = multiple#37325b1b1e5ec1e1

Costin Manolache(Googleのソフトウェアエンジニア)によって書かれました:

アプリは2つの異なる送信者IDを登録できません-(android-id + app id)のレコードが1つあり、2番目の登録が最初の登録に置き換わり、最初の送信者は送信できなくなります。

いずれにせよ、これは現在「サポートされている」機能ではありませんが、合理的に聞こえます。

複数の顧客と共有する1つの送信者アカウントを使用しないでください。TOS以外に、他の問題が発生する可能性があります。

私も同じ問題を抱えています。クライアントは複数のサーバーを持つ複数のアカウントを持っており、通知を受信するためにアカウントを持つすべてのサーバーに登録する必要があります。

于 2012-02-28T13:47:27.427 に答える
0

私があなたの質問を理解している限り、説明は、アプリケーションにリストされているさまざまなサーバーからプッシュ通知を取得したいようなものであり、登録プロセスと未登録プロセスのためにそのサーバーを管理できます。

上記の説明が正しければ、次のようになります。

ServerId のリストを内部で維持し、C2DM 登録 ID を生成できます。C2DM 登録 ID はパッケージに対して一意です。同じパッケージが再登録を試みて更新されます。したがって、この登録IDをn個のサーバーに与えることができ、サーバーはこの登録IDでメッセージを送信でき、それはあなたのアプリケーションに挑戦的に届きます。

登録解除の目的で、リストからサーバー ID をいつでも削除できます。C2DM 登録 ID は 1 つしかないため、特に何もする必要はありません。C2DM から登録を解除すると、アプリケーションはどのサーバーからもメッセージを受信しません

于 2011-10-05T10:14:29.330 に答える