
here code for set alive .
void ICACHE_FLASH_ATTR
esp_gateway_tcp_connected(void *arg)
{
uint32_t keeplive;
ESP_DBG("connected\r\n");
pclientConnect = (struct espconn *)arg;
//set keepalive: 30mins=1800s = 1500 + 10*30
keeplive = 3000; //1500s: 500ms*3000
espconn_set_keepalive(pclientConnect, ESPCONN_KEEPIDLE, &keeplive);
keeplive = 60; //again 30s: 500ms*60
espconn_set_keepalive(pclientConnect, ESPCONN_KEEPINTVL, &keeplive);
keeplive = 10; //try times
espconn_set_keepalive(pclientConnect, ESPCONN_KEEPCNT, &keeplive);
espconn_set_opt(pclientConnect, ESPCONN_KEEPALIVE);
espconn_set_opt(pclientConnect, ESPCONN_NODELAY);
espconn_set_opt(pclientConnect, ESPCONN_COPY);
//register write finish call back
tcpTxCounter = 0;
tcpTxReadIndex = 0;
tcpTxWriteIndex = 0;
tcpTxInusing = false;
espconn_regist_write_finish(pclientConnect, esp_gateway_tcp_next_send);
/*Send OnCconnected package to MCU*/
meshtalkdevice_onconnect();
//stop advise
esp_platform_advise_enable(false);
}
PC side(using javascript Nodejs v0.10) also set to
//set TCP keepalive to 30 min
remoteDevice.socket.setKeepAlive(true, 1800000);
remoteDevice.socket.setNoDelay(true);\
....