php - 从4G模块向服务器发送连续数据

标签 php server gsm continuous 4g

我将 Telit LE910 4G LTE 模块连接到 Teensy 板(Arduino 可以)。虽然我能够使用 HTTP 请求(POST 和 GET)将数据发送到我的 PHP 服务器,但由于服务器响应的必要延迟,我无法发送连续数据:

  [...]
  // SOCKET DIAL
  LTESerial.print("AT#SD=1,0,80,\"SERVER IP\"\r\n");
  delay(5000);

  // POST
  LTESerial.print("POST /server/index.php?data=");
  LTESerial.print(random(1000));
  LTESerial.print(" HTTP/1.1\r\n");
  LTESerial.print("Host: SERVER IP\r\n\r\n");  
  delay(5000);
  while (getResponse() > 0);

这只是一个例子(写在这里),但它在某种程度上说明了我在做什么。上面的代码应该放在 while 循环中,这样一旦数据上传到服务器上的 .txt 文件,模块就会重新连接到服务器并 POST 另一个数据点。

显然,我想避免这些延迟并尽可能快地向服务器解析数据(只要数据可用)。这就是我选择 4G LTE 版本的原因。

调整延迟可能会多给我一秒钟左右的时间,但我的项目包括“实时”绘制大量数据点,因此它对时间非常敏感。

知道如何在 4G 上向服务器发送连续数据流吗?我正在考虑缓冲一些数据点并使用 FTP 上传数据,但我认为将文件上传到服务器甚至可能比现在花费更多时间。

非常感谢任何帮助!

最佳答案

听起来您的用例可能更适合特殊的 IoT(物联网)协议(protocol),而不是更面向客户端服务器连接的协议(protocol),例如 HTTP。

物联网世界中使用了多种协议(protocol),但最常见的是:

这些不仅应该解决您的延迟问题,而且通常还旨在最大限度地减少数据开销和处理/电池使用。

您应该也能找到这些的 PHP 示例 - 例如 MQTT 的示例:

关于php - 从4G模块向服务器发送连续数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37471997/

相关文章:

arduino - SIM900 GSM/GPRS 未获得正确的 AT+CREG?回答

php - 以原子方式将一行附加到文件并在文件不存在时创建它

c# - 无法弄清楚为什么 GetFiles(...) 对我不起作用

python - 如何使用 HTTP 服务器从客户端获取输入并对其进行操作

c# - GSM 基站定位和三角测量算法(类似于 OpenCellID/Skyhook/Google 的 MyLocation)

python - 我如何着手编写一个程序来使用 python 发送和接收短信?

php - 使用未定义常量 __DIR__

javascript - 如何在 Chrome 扩展中使用 AJAX 发出 POST 请求?

php mysqli_query 连接来自其他 php 文件的链接

java - Tomcat 9 无法在 Ubuntu 上使用 Java 10