0

Androidフォンとシンクライアントを通信するためのサーバーとしてGAEを使用することを検討しています。私の典型的な使用シナリオは次のとおりです。ユーザーは Web ページ (GAE) を開き、リモート デバイスから情報を要求します デバイスはメッセージを取得し、Web ページを介してユーザーに送り返します。

GCM のおかげで、電話にメッセージを送信するのは簡単です。ハードな部分はユーザーへの返信です。私が持っている唯一のアイデアは、データストアへの応答を挿入し、繰り返しクエリを実行することですが、通信の遅延とデータストアとそのクォータの過度の使用という欠点があります。

チャネル API について聞いたり読んだりしたことがありますが、GAE を使用すると、両方のクライアントが異なるマシンに接続する可能性が高くなります。これを正しい方法で行う方法はありますか?

私の質問をより明確にするために:問題を単純化しましょう。Androidクライアントからメッセージを受け取るサーブレットが1つあります。メッセージは、GWT と別のサーブレットでログインし、独自のセッション インスタンスを持つユーザーに宛てられます。あるサーブレットから別のサーブレットにメッセージを渡す方法を知っていますか? 私の知る限り、自動 sendMessage() メソッドでそれを行うことはありません。ある種のメールボックスを実装する必要があるだけです。現時点では、memcache がこの役割を果たしています。Amazon SMS のようなサービスに最適なはずですが、多くのサーバー間でアプリがディスパッチされると、少し不満になります。キューは別のアイデアですが、GAE のものではありません。実稼働環境で実験的とラベル付けされたソリューションを望んでいません。

4

2 に答える 2

2

Channel API がその答えです。すべてのブラウザー インスタンスは、トークンによって識別されるチャネルを開く必要があります。おそらくある種のセッションデータで、すべてのトークンを追跡するのはあなた次第です。その後、適切なブラウザにメッセージを送信できます。

これまでのところ、メッセージの送信に失敗することがあることに気付きました。頻繁ではありませんが、時々。メッセージの内容が重要でない場合は、問題ない可能性があります。私の場合、バックアップ ポーリング HTTP クエリを作成しました。チャネルの利点は、バックアップ ポーリングを頻繁に行う必要がないことです。

于 2012-11-23T02:01:07.290 に答える
1

Channel API は優れていて信頼性が高く、アプリの 1 つでMobiTexterを使用していますが、これまでのところ 1 つの問題にも直面していません。

于 2012-11-23T06:39:15.603 に答える