ws_client: fix handling timeouts by websocket client.

tcp-transport component did not support wait forever. this update uses value of -1 to request this state.
websocket client uses timeouts in RTOS ticks. fixed recalculation to ms (including special value of -1) to use correctly tcp-transport component

Closes https://github.com/espressif/esp-idf/issues/4316


* Original commit: espressif/esp-idf@e1f982921a
This commit is contained in:
David Cermak
2019-11-12 17:42:51 +01:00
committed by gabsuren
parent a41e3383b3
commit 1fcc001ae8
2 changed files with 5 additions and 5 deletions

View File

@ -606,14 +606,14 @@ static int esp_websocket_client_send_with_opcode(esp_websocket_client_handle_t c
goto unlock_and_return; goto unlock_and_return;
} }
while (widx < len) { while (widx < len) {
if (need_write > client->buffer_size) { if (need_write > client->buffer_size) {
need_write = client->buffer_size; need_write = client->buffer_size;
} }
memcpy(client->tx_buffer, data + widx, need_write); memcpy(client->tx_buffer, data + widx, need_write);
// send with ws specific way and specific opcode // send with ws specific way and specific opcode
wlen = esp_transport_ws_send_raw(client->transport, opcode, (char *)client->tx_buffer, need_write, timeout); wlen = esp_transport_ws_send_raw(client->transport, opcode, (char *)client->tx_buffer, need_write,
(timeout==portMAX_DELAY)? -1 : timeout * portTICK_PERIOD_MS);
if (wlen <= 0) { if (wlen <= 0) {
ret = wlen; ret = wlen;
ESP_LOGE(TAG, "Network error: esp_transport_write() returned %d, errno=%d", ret, errno); ESP_LOGE(TAG, "Network error: esp_transport_write() returned %d, errno=%d", ret, errno);

View File

@ -155,7 +155,7 @@ esp_err_t esp_websocket_client_destroy(esp_websocket_client_handle_t client);
* @param[in] client The client * @param[in] client The client
* @param[in] data The data * @param[in] data The data
* @param[in] len The length * @param[in] len The length
* @param[in] timeout Write data timeout * @param[in] timeout Write data timeout in RTOS ticks
* *
* @return * @return
* - Number of data was sent * - Number of data was sent
@ -169,7 +169,7 @@ int esp_websocket_client_send(esp_websocket_client_handle_t client, const char *
* @param[in] client The client * @param[in] client The client
* @param[in] data The data * @param[in] data The data
* @param[in] len The length * @param[in] len The length
* @param[in] timeout Write data timeout * @param[in] timeout Write data timeout in RTOS ticks
* *
* @return * @return
* - Number of data was sent * - Number of data was sent
@ -183,7 +183,7 @@ int esp_websocket_client_send_bin(esp_websocket_client_handle_t client, const ch
* @param[in] client The client * @param[in] client The client
* @param[in] data The data * @param[in] data The data
* @param[in] len The length * @param[in] len The length
* @param[in] timeout Write data timeout * @param[in] timeout Write data timeout in RTOS ticks
* *
* @return * @return
* - Number of data was sent * - Number of data was sent