2

C#で作成した基本的なプログラムを使用して、WindowsMo​​bile電話からWebサーバーにgps座標を送信しています。問題は、電話のデータプランでは月に4MBしか許可されていないことです。私は10秒ごとに場所を更新することを計画していました。

現在、サーバー上のphpページに対して10秒ごとにWebリクエストを作成しており、座標がURLに渡され、phpページがそれらをデータベースに保存します。

これにより、リクエストごとに約1Kのデータが生成されます。このレートでは、1日以内にデータ制限に達します。

これを行うためのより効率的な方法はありますか?

アップデート:

これの適用についてもう少し説明する必要があります。私は大学で働いていて、シャトルの電話を使用して、シャトルの場所を10秒ごとにサーバーに送信することを考えました。次に、生徒が自分のコンピューターまたは電話からアクセスできるWebサイトを用意して、シャトルの場所を確認します。

これにより、シャトルを待つか、歩き始めるかを決めることができます。だから私はおそらく20秒の更新に行くことができますが、それはそれについてです。アプリケーションは24時間年中無休で実行されませんが、電話がオフになっていない場合に備えて、最悪のシナリオを使用しています。

4

5 に答える 5

8

ユーザーが前の値から一定の距離を移動したときにのみ更新を送信するのはどうですか?

たとえば、電話がベッドの横に座っている間、夜間に10秒ごとに同じ座標を繰り返し送信することは意味がありません。

于 2010-05-07T15:29:19.633 に答える
4

10秒ごとに1リクエスト=6リクエスト/分=360リクエスト/時間=8640リクエスト/日=〜260kリクエスト/月

4MB / 260k〜= 15

それで、あなたの制限の下にとどまるために、サーバーへの平均的な投稿は15バイトでなければなりませんか?可能ではないようです。

ソケットレベルまで下がったとしても(とにかくそうすべきでしょう)、単純なものはping84バイトを送信するので、それでも1分に1回に制限されます。

于 2010-05-07T15:25:33.093 に答える
2

SMS(テキストメッセージ)を使用して、電話からサーバーに座標を送信できます。無制限のテキストメッセージは通常、データプランよりもはるかに安価です。

また、携帯電話に座標を保存して、バッチで送信することもできます(10秒ごとに1つの座標を送信する代わりに)。2つのフロートまたは8バイトのGPS座標を保存できます。10秒ごとに1つの座標で、それは1か月あたり約2MBになります。バッチを十分に大きくして、データのサイズに比べて通信オーバーヘッドが小さくなるようにすると、4MBの制限を下回ることになります。

Webサービスは非常に冗長なSOAP/XMLを使用します。データをバイト配列として送信してから、サーバー上の個々の要素を解凍することが、この問題を回避する最善の方法です。

于 2010-05-07T15:26:00.237 に答える
1

あなたは世界のどこにいますか、どのようなデータプランが利用できますか?確かに、あなたの概念をそのような簡単なデータ計画に適合させようとするよりも、ばかげていないデータ計画を取得する方が簡単でしょうか?私が住んでいる英国では、500MB-1GBのモバイルデータアドオンは、通常の電話契約コストに加えて、月に5ポンド程度です。

于 2010-05-07T15:43:35.033 に答える
0

まず第一に、私はあなたが10秒の時間間隔で非常に長い距離を作るために非常に高速であまり旅行しないと思います。したがって、間隔を大きくすることをお勧めします。

最後の場所までの距離を計算できるロジックをクライアントに追加できます。特定のしきい値を超えた場合にのみ、更新を送信します。あなたが同じ場所にいる場合(自宅、睡眠、1日数時間など)、「ここで、位置はまだ(ほぼ)最後のものと同じです」-X分すべてのデータが非常に短いメッセージを送信できます。Xは増加する値ですが、位置の最後の変更の長さに依存します。5分、15分、30分、1時間などのように。これにより、多くのトラフィックも節約され、位置が再び変更された場合は、完全なgps座標を一度に更新できます。

于 2010-05-07T15:31:18.660 に答える