保持TCP连接保持活动状态并仅循环GET命令

时间:2017-04-18 04:24:54

标签: http tcp at-command esp8266

我需要在每次连接到我的网站时节省时间并获取数据。

这是我的工作。

ESP模块连接到家庭WiFi。

  1. AT+CIPMUX=0 - >回复OK
  2. AT+CWMODE=1 - >回复OK
  3. AT+CIPSTART="TCP","http://mysim900.com",80 - >回复connected OK
  4. AT+CIPSEND=75 - >回应 - > >waiting for data to GET or POST
  5. >GET http://mysim900.com/sw_status.php?status=list_all HTTP/1.0 /r/n/r/n/r/n
    
    send OK. 
    
  6. 回复200并从我的网站接收所有字节。 最后

    connection CLOSED.
    

    通过重复步骤3,4和5,我可以多次成功地从我的网站获取数据 每次在步骤5结束时,模块都会说 - > connection CLOSED

    我需要的是每次都不要关闭连接 每次消耗时间并重新建立连接时,我需要从步骤3(AT+CIPSTART)开始。

    相反,是否有任何可能的方式(任何AT命令)保持连接到我的网站mysim900.com? 只需一行AT命令即可快速从我的网站获取数据,这样我的代码刷新率就会提高。

1 个答案:

答案 0 :(得分:1)

首先,你发出的请求是错误的(最后一个\r\n太多了)。如果您希望HTTP保持HTTP / 1.0,您必须添加Connection: keep-alive标头。不过,这只是对服务器的建议,它可能会保持连接打开。当然,使用HTTP keep-alive,您需要通过提取内容长度来找到响应的正确结束,因为连接结束将不再作为响应的结束。