我正在使用嵌入式数据采集系统,该系统使用Telit GSM调制解调器将传感器数据传输到网络。我目前正在通过简单的GET请求将数据发送到php脚本。我遇到的问题是HTTP响应相当大(~220字节)。我目前有一个非常便宜的8Mb / mo数据计划,我正在尝试最小化每次传输所需的字节数。我考虑过压缩一些传出数据,但那里的潜在收益相当小。由于响应是没有用的,除了表明请求是成功的(我甚至不解析它或使用它),我希望切断它或至少缩短它(只是响应代码为例)。
有没有人知道如何从PHP执行此操作?到目前为止,我已经查看了header()函数但没有用。我考虑的另一个选项是将请求发送到服务器程序(比如端口15000而不是80),然后从那里向我的php脚本发出另一个请求,但这看起来很混乱。我在用于访问mysql的学生服务器上没有合适的库,我也使用phpCurl,否则我可以使用一个简单的服务器程序来完成整个过程。
有什么想法吗?我们的服务器正在运行PHP版本5.4.4
路
答案 0 :(得分:2)
您可以通过TCP连接发送数据吗?当然,在这种情况下,我假设您有自己的服务器计算机。我用Python中的Twisted编写了一个简单的TCP服务器来与我的Telit GM862-GPS模块通信。然后,您可以编写TCP服务器代码以将其上载到其他位置。
如果您要将数据上传到其他网站(例如Twitter),我认为您没有多少选择来缩小尺寸。
答案 1 :(得分:1)
为了缩短您的响应,我会检查自己的HTTP服务器。话虽这么说,你不会变得太小。
我可能会考虑传感器传输MQTT,这是一个非常轻量级的协议。
答案 2 :(得分:0)
一旦你的PHP脚本完成了它的工作,你应该能够简单地告诉它:
die();
或
$status = 1;
die($status);
然后您可以查找数字状态(或者只是来自服务器的200响应)。您可能必须检查代码以确保在捕获之前未在代码中的其他位置输出响应数据。输出缓冲可能会有所帮助 - http://us3.php.net/manual/en/ref.outcontrol.php
答案 3 :(得分:0)
也许您可以托管一些实现设备将数据发送到的侦听套接字的应用程序?
您可以使用分隔符或指示消息大小的前缀来组成一些只读协议。这样,您只能发送所需的数据,而不会产生任何开销(如HTTP)。