1

私は、TelitGSMモデムを使用してセンサーデータをWebに送信する組み込みデータ取得システムを使用しています。現在、単純なGETリクエストを使用してデータをphpスクリプトに送信しています。私が抱えている問題は、HTTP応答がかなり大きい(〜220バイト)ということです。私は現在非常に安価な8Mb/moのデータプランを持っており、各送信に必要なバイトを最小限に抑えようとしています。送信データの一部を圧縮することを検討しましたが、そこでの潜在的なゲインはかなり小さいです。応答は、要求が成功したことを示す以外には役に立たないので(そして、これを解析したり使用したりすることさえしません)、私はそれを切り取るか、少なくとも短くしたいと思います(単に応答コード例)。

PHPからこれを行う方法を知っている人はいますか?私はこれまで何の役にも立たないheader()関数を調べました。私が検討したもう1つのオプションは、サーバープログラム(たとえば、80ではなくポート15000)にリクエストを送信し、そこからphpスクリプトに別のリクエストを送信することでしたが、これはぎこちないようです。mysqlへのアクセスに使用している学生サーバーに適切なライブラリがなく、phpCurlも使用しています。そうでない場合は、単純なサーバープログラムを使用できます。

何か案は?私たちのサーバーはPHPバージョン5.4.4を実行しています

ルーク

4

4 に答える 4

2

代わりに、TCP接続を介してデータを送信できますか?もちろん、この場合、私はあなたがあなた自身のサーバーコンピュータを持っていると仮定します。私は、PythonでTwistedを使用して単純なTCPサーバーを作成し、TelitGM862-GPSモジュールと通信しました。次に、TCPサーバーをコーディングして他の場所にアップロードできます。

ツイッターのような他のウェブサイトにデータをアップロードしている場合、サイズを最小化するための多くのオプションはないと思います。

于 2013-03-01T14:53:15.370 に答える
1

応答を短くするために、HTTPサーバー自体をチェックします。そうは言っても、あなたはあまり小さくならないでしょう。

センサー送信用のMQTTを調べるかもしれませんが、これは非常に軽量なプロトコルです。

于 2013-01-12T00:29:51.980 に答える
0

おそらく、デバイスがデータを送信するリッスン ソケットを実装するアプリケーションをホストできますか?

区切り文字またはメッセージ サイズを示すプレフィックスを使用して、読み取り専用プロトコルを作成できます。このようにして、(HTTP のように) オーバーヘッドなしで、必要なデータのみを送信できます。

于 2013-01-12T00:48:59.543 に答える
0

PHP スクリプトが機能したら、次のように指示するだけです。

die();

また

$status = 1;
die($status);

次に、数値ステータス (または単にサーバーからの 200 応答) を探すことができます。応答データをキャッチする前に、コードをチェックして、コード内の別の場所に応答データが出力されていないことを確認する必要がある場合があります。出力バッファリングが役立つ場合があります - http://us3.php.net/manual/en/ref.outcontrol.php

于 2013-01-12T00:35:25.940 に答える