2

私はAndroidが初めてなのでtext/dataserver(Webサービス)から特定android deviceの1つに(毎回別のユーザーに)送信するための最良のアプローチを探しています。手順は次のとおりです。

  1. Webservice はアプリケーションから json を受け取ります。ログインしているユーザーは一度に 1 つずつ (非常に単純です)。
  2. サーバーは受信したデータを処理し、特定のユーザー/デバイスに送信します。サーバーはデータを受信するたびに、別のユーザーへのメッセージに従います。
  3. 現在、ユーザーは Android アプリの所有者です。次のステップ - ユーザーは別のプラットフォーム アプリを使用でき、データを送信/受信するデバイスの種類をサーバーに登録します。
  4. ユーザーがオフラインだった場合、メッセージは待機リストから削除され、オンラインの別のユーザーに送信される必要があります。

私にとっての主な問題は、特定のユーザーにデータを送信する方法を定義することです-by ID\username、デバイスID、その他? GCM を練習しようとしましたが、同じサーバーを使用して Android デバイスだけでなく iPhone/Windows にもデータを送信する予定であるため、探しているものとはまったく異なります。ありがとうございました。

4

2 に答える 2

3

Android の場合、GCM を使用する必要があります。他のプラットフォームでは、独自のプッシュ メッセージング API が必要です。

そのため、電話が GCM に登録されると、サーバーと通信するハンドルが取得されます。このハンドルをデータベースなどに保存するときは、電話の種類 (Android、iOS など) も保持します。

ユーザーに通知したい場合は、ストアの種類を確認し、プラットフォームごとに異なるプロトコルを実装します。

これを抽象化するライブラリもあるかもしれませんが、私は知りません

編集:いくつか見つけました

Urban Ship (商用)、PushSharp (サーバー側ライブラリ)をチェックして、多くのプラットフォームにプッシュ通知を送信できるようにすることも、代わりにStackMobを確認することもできます。どちらも気に入らない場合は、グーグルで他のオプションを探してください。

于 2012-10-31T13:12:24.473 に答える
1

There is no way to contact devices directly from your server

  • device may be not accessible
  • device in carriers walled garden and has no outside IP address ( almost always )

Your only kind of push solution is cloud messaging. Alternatively you can implement folowing schema:

  • all devices have unique ID
  • devices poll server with regular interwals to see whether there is something for them

If you like to have "offline"-mode, you may consider message expiration ( say, your poll interwal is 5 minutes so expire all messages not retrieved inside 10 minutes )

于 2012-10-31T13:12:02.230 に答える