2012-05-12 11 views
0

今、私は市場で無料で利用できるアンドロイドアプリを開発しました。アプリは基本的にHTTP GETを使用して、私の個人的なサーバーからのいくつかのデータを照会します。私のサーバーがホストされているため、毎月の転送が限られているため、帯域幅について心配しています。アンドロイドアプリの使用を制限する

私はちょうど不思議に思っていましたが、20人のリクエストに対して、1日あたりの各ユーザーのリクエスト数を制限する強力な方法がありますか?

バックグラウンドでは、アプリのインターフェイスはかなり簡単です。 2つのEditTextボックスでHTTP GETパラメータを取得し、Buttonでリクエストを送信します。これは最終的にアプリケーション上のTextViewを入力するCGIスクリプトからいくつかの値を返します。

解決策は、アプリケーション側またはサーバー側のいずれかにすることができます。私が持っていたアイデアは、何らかの形でファイルにすでに加えられた要求の数を書き込んでそこからステータスを読み取ることでした。

私が欲しいものを達成するためのよりよい方法がありますか?あなたのアプリで

::ただの提案

答えて

1

は(。thisの質問を参照)、各デバイスに一意のIDを生成し、要求をサーバーに送信します。サーバーで

ストア要求は、どこかに、各デバイスから数えて、格納された値に基づいて、あなたが望む任意の制限を適用します。


サーバ側でリクエストを制限することができます。 このアプローチの問題は、共有IP(例えば、複数のデバイスがアクセスポイントなどに接続されているなど)を使用してインターネットに接続しているユーザーを制限していることです。

+0

ありがとうございます。サーバー側でこの制限がどのように適用されるのかご存知ですか? –

+0

各ユーザー(DeviceID)の要求数をデータベーステーブルに格納します(cronジョブを使用して毎日値をリセットします)。次に、各要求でDeviceIDを確認し、要求が許容要求数を超えた場合にエラー応答を送信します。 – fardjad

+0

ありがとう!私は、txtファイルに一意のIDを追加し、cronジョブを使用して毎日空にするために、少し原始的なことをやったことがあります。ユーザが問い合わせるたびに、私はtxtファイルをgrepし、限界に達しているかどうかを確認するためにwc -lを実行します。 –

関連する問題