This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nrf9160 - MQTT over TLS - Socket buffer limit - AWS Shadow - Nordic Team Proposal

Hi,

Currently, we work on a project that uses:

    nRF9160
    Zyphre OS
    Segger Embedded Studio for  Arm (Nordic Edition) V5.10d
    SDK v1.4.1
    mqttlib.

According to the documentation, it is not possible to send or receive messages larger than 2K with MQTT / TLS. So our question is:

What is the official proposal of the Nordic Team to be able to use AWS Shadow with MQTT / TLS in the nrf9160?

Thank you,

Dagtus Team.

Parents
  • Hey,

    any updates on this issue? I'm experience the same problem. When shadow size is more than 5k, I've got disconnected from AWS cloud. When shadow is small - every thing is working, so it's not related to AWS side.

    My observations shows the following: after sending request for shadow, in aws_iot.c, in aws_iot_cloud_poll thread we receive signal that there something received in the connected socket. We call aws_iot_input() which in turn call mqtt_input(). mqtt_input() call client_read() which call mqtt_handle_rx() and if there is an error, calls client_disconnect() (which is our case). mqtt_handle_rx try to read first header of the message (2 bytes), but for unknown for me reason reading from the socket returns 0 bytes and therefore initiate disconnection sequence.

    I use SDK v1.6.0 and Segger. My board is nRF9160.

Reply
  • Hey,

    any updates on this issue? I'm experience the same problem. When shadow size is more than 5k, I've got disconnected from AWS cloud. When shadow is small - every thing is working, so it's not related to AWS side.

    My observations shows the following: after sending request for shadow, in aws_iot.c, in aws_iot_cloud_poll thread we receive signal that there something received in the connected socket. We call aws_iot_input() which in turn call mqtt_input(). mqtt_input() call client_read() which call mqtt_handle_rx() and if there is an error, calls client_disconnect() (which is our case). mqtt_handle_rx try to read first header of the message (2 bytes), but for unknown for me reason reading from the socket returns 0 bytes and therefore initiate disconnection sequence.

    I use SDK v1.6.0 and Segger. My board is nRF9160.

Children
Related