本文介紹設備使用物聯網平臺提供的設備端C語言Link SDK 3.x版本,基于CoAP協議連接物聯網平臺可能出現的問題和解決方法。
CoAP協議允許 over UDP 接入嗎?
不支持CoAP over UDP。目前物聯網平臺僅支持CoAP協議的DTLS連接。
CoAP協議接入物聯網平臺的URI是什么?
在調用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_DeviceNameAuth認證函數是阻塞等待指定時間嗎?
目前這個版本是非阻塞、異步的。在這個接口中不會阻塞等待結果,而是在IOT_CoAP_Yield中進行處理。
函數IOT_CoAP_Yield是半阻塞。調用一次,會等2秒鐘。若有數據,則收取數據進行處理;若沒數據,則2秒后超時。
等待時間默認2,000毫秒,可自行修改宏COAP_WAIT_TIME_MS進行定義。
CoAP的客戶端在提交認證時,字段IOTX_DEVICE_ID是什么意義?
該字段是自定義的信息,例如可以填設備SN等信息。所有需要攜帶到云端的設備信息都可以在該字段配置。
如果發送到云端的數據不是JSON會出現什么錯誤?
目前除了支持JSON格式外,也可以支持CBOR格式。設備與云端通信,需要使用指定格式,否則可能會出現無法解析的問題。
調用IOT_CoAP_Init方法時,coap_malloc返回NULL,是什么原因引起的?
請查看coap_malloc函數有沒有適配實現。平臺移植后,hal
相關的底層函數都需要用戶自行實現。
CoAP協議支持數據下行嗎?
目前HTTP協議和CoAP協議暫不支持數據下行。MQTT協議支持數據上、下行,推薦使用MQTT協議。