本文介绍设备使用CoAP协议连接物联网平台可能出现的问题和解决方法。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
目前物联网平台的CoAP连接只支持DTLS,不支持CoAP over UDP。
在调用 IOT_CoAP_Init 的时候,可以设置其参数iotx_coap_config_t里面的p_url。
如果p_url为NULL,SDK会自动使用IOTX_ONLINE_DTLS_SERVER_URL 这个URL。
#define IOTX_ONLINE_DTLS_SERVER_URL “coaps://%s.iot-as-coap.cn-shanghai.aliyuncs.com:5684”
CoAP协议接入物联网平台的地址、端口等详细信息,请参见CoAP连接通信。
目前这个版本是非阻塞、异步的。在这个接口里面不会阻塞等待结果,而是在IOT_CoAP_Yield里面进行处理。
函数IOT_CoAP_Yield 是半阻塞。调用一次,会等2秒钟。有数据,则收取数据进行处理;没数据,则2秒后超时。
等待时间默认2,000毫秒,可自行修改宏COAP_WAIT_TIME_MS 来定义。
这个字段是自定义的信息,例如可以填设备SN等信息。凡是想携带到云端的设备信息都可以填这里面。
目前除了支持JSON格式外,也可以支持cbor格式。与云端通信,需要使用指定格式,否则可能会出现无法解析的问题。
请查看一下coap_malloc函数有没有适配实现。平台移植后,hal相关的底层函数都需要用户自行实现。
目前HTTP协议和CoAP协议暂不支持数据下行。MQTT协议支持数据上、下行,推荐使用。