我已經連接到Teensy板(Arduino會這樣做)的Telit LE910 4G LTE模塊。雖然我能夠使用HTTP請求(POST和GET)將數據發送到我的PHP服務器,我無法發送連續數據由於需要延遲的服務器來回應對:從4G模塊發送連續數據到服務器
[...]
// 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上傳數據,但我認爲上傳文件到服務器甚至可能比現在需要更多的時間。
任何幫助非常感謝!
由於受到限制,我想繼續使用HTTP。在任何情況下,我都可以完全訪問WAMP上的私有服務器,這意味着我應該能夠啓動'套接字監聽器',將4G模塊引導到此監聽器並無限制地傳輸數據。我嘗試使用PHP,但我仍然遇到這些延遲。有沒有辦法保持套接字撥號活着並繼續發送POST請求? – Rex