0

別の Android デバイスから (Android クライアントがそこで何かを作成または変更しなかった場合) GAE にメッセージ (オブジェクトまたは値) を繰り返し (毎秒) 要求したいと思います。かなり迅速に確認する必要がありますが、ほぼ 1 時間に 1 回発生することがわかっています。

私はrestletを使用していますが、新しいスレッドを作成して毎秒このスレッドから取得してポーリングしたくありません。これは非常にバッテリーを消費するためです。また、C2DM も使用したくありません。

どういうわけかこれを行うことは可能ですか?ここでNIOノンブロッキングhttpコネクタについて何かを見つけました: http://restlet-code.1609877.n2.nabble.com/Push-data-from-server-using-a-live-HTTP-connection-td2906563.html

ただし、ここではクライアント側のみを説明します。また、このソリューションが GAE で使用できるかどうか、およびその方法もわかりません。誰かがこのアプローチについてもっと知っていますか?

事前にどうもありがとうございました。

4

3 に答える 3

1

uniqush の作成者として、この質問に特化したFAQページにエントリを作成しました。

Google App Engine で uniqush を使用できますか?

はいといいえ。

Google App Engine で GCM を使用するだけの場合は、uniqush-push に直接使用できるコードがいくつかあります。

ただし、Google App Engine はソケット接続をサポートしていないため、APNS を使用する方法がありません。別の作品では、Google App Engine にサーバーをセットアップしたい場合、使用しているソフトウェア/ライブラリに関係なく、iOS デバイスに通知をプッシュすることはできません。

uniqush を Google App Engine に移植することを検討しました。しかし、この事実のために、Google がクライアント側のソケット接続の使用を許可するか、APNS サーバーに接続する方法を提供するまで、移植する方がよいと思います。

繰り返しになりますが、Google App Engine をアプリのサーバーとして使用することを検討している場合は、現在 iOS デバイスにプッシュ通知を送信できないことに注意してください。この事実が気にならない場合は、それを実行してください。

個人的には、フル コントロールでサーバーを実行することをお勧めします。今日では高価ではありません。Amazon EC2 または同様のクラウド製品は、uniqush を実行するのに適している場合があります。

上記で推奨したように、Android 以外のプラットフォームをサポートしたい場合は、フル コントロールの (仮想) サーバーを使用することをお勧めします。

他にご不明な点がございましたら、お気軽にご返信ください。

于 2012-09-18T23:15:59.133 に答える
0

将来を保証するために、両方の種類のデバイスに対して単一のプッシュ通知サービスを利用することをお勧めします。自分で構築するか、uniqushこれのようなものを活用することができます

また、Urban AirshipのSDKを確認することもできます。詳細については、こちらをご覧ください。

于 2012-07-03T21:05:14.433 に答える
0

これは Urban Airship に似ていますが、コストはごくわずかです。API を使用すると、呼び出しを介して C2DM メッセージをユーザーに送信できます。ブロードキャスト レシーバーを実装した後、ユーザーがアプリをインストールすると、メッセージを受け入れるように求められます。彼らが受け入れると、ユーザーを識別するトークンが C2DM サーバーに送信されます。このトークンは、C2DM プラットフォームを介してメッセージを送信するために使用されます。Zend PHP フレームワークにはこのための関数が組み込まれていますが、信頼性が懸念される場合は、Remote Queries や Urban Airship などの外部プロバイダーを使用してください。

于 2012-07-05T10:55:56.920 に答える