1

我正在使用嵌入式数据采集系统,该系统使用 Telit GSM 调制解调器将传感器数据传输到网络。我目前正在使用简单的 GET 请求将数据发送到 php 脚本。我遇到的问题是 HTTP 响应相当大(~220 字节)。我目前有一个非常便宜的 8Mb/mo 数据计划,并且正在尝试最小化每次传输所需的字节数。我考虑过压缩一些传出数据,但那里的潜在收益相当小。由于响应没有用,除了表明请求成功(我什至不解析或使用它),我很想把它剪掉或至少缩短它(只是响应代码例子)。

有谁知道如何从 PHP 做到这一点?到目前为止,我已经查看了 header() 函数但无济于事。我考虑的另一个选项是将请求发送到服务器程序(比如端口 15000 而不是 80),然后从那里向我的 php 脚本发出另一个请求,但这似乎很麻烦。我在用来访问 mysql 的学生服务器上没有合适的库,而且我也在使用 phpCurl,否则我可以使用一个简单的服务器程序来完成整个事情。

有任何想法吗?我们的服务器正在运行 PHP 版本 5.4.4

卢克

4

4 回答 4

2

您可以改为通过 TCP 连接发送数据吗?当然,在这种情况下,我假设您拥有自己的服务器计算机。我使用 Python 中的 Twisted 编写了一个简单的 TCP 服务器来与我的 Telit GM862-GPS 模块通信。然后,您可以对 TCP 服务器进行编码以将其上传到其他地方。

如果您将数据上传到其他网站(如 twitter),我认为您没有很多选择可以最小化大小。

于 2013-03-01T14:53:15.370 回答
1

为了缩短您的响应,我会检查 HTTP 服务器本身。话虽这么说,你不会变得太小。

我可能会研究MQTT用于传感器传输,它是一个非常轻量级的协议。

于 2013-01-12T00:29:51.980 回答
0

一旦你的 PHP 脚本完成了它的工作,你应该能够简单地告诉它:

die();

或者

$status = 1;
die($status);

然后您可以查找数字状态(或只是来自服务器的 200 响应)。在捕获响应数据之前,您可能必须检查代码以确保响应数据不会输出到代码的其他位置。输出缓冲可能会有所帮助 - http://us3.php.net/manual/en/ref.outcontrol.php

于 2013-01-12T00:35:25.940 回答
0

也许您可以托管一些应用程序来实现您的设备将其数据发送到的侦听套接字?

您可以使用分隔符或指示消息大小的前缀来组成一些只读协议。这样你就可以只发送你想要的数据,没有任何开销(就像 HTTP 一样)。

于 2013-01-12T00:48:59.543 回答