數據推送:
- 終端產生的數據通過物聯網平台推送給北向的應用的一種服務
數據推送分為HTTP推送和MQ推送
1. HTTP消息推送
物聯網開放平台將符合訂閱條件的設備信息以HTTP方式推送至北向應用。
用戶可以通過門戶或者調用北向API接口添加北向應用訂閱url,平台可以將符合訂閱條件的設備消息以HTTP POST方式推送至指定的url。目前支持設備數據變化通知、設備指令響應通知、設備事件上報通知、設備上下線通知等消息類型的訂閱,各協議對應消息類型及格式參見訂閱推送消息格式。訂閱級別分為設備級,產品級和分組級。目前訂閱生效時間為1分鍾左右。 支持HTTP和HTTPs兩種推送方式,HTTPs方式具備數字簽名和通訊加密能力,具有較高的安全性。HTTP推送方式采用明文傳輸,可能造成推送消息被竊聽或篡改,具有安全風險,請慎重選擇,建議用戶采用HTTPs方式來接收推送消息。
在北向應用創建一個接收數據的接口
配置平台推送地址
- 設備級訂閱
- 產品級訂閱
- 分組級訂閱
平台推薦使用HTTPS安全訂閱
1.1 使用設備級訂閱上報事件數據
- 將推送數據封裝為一個java對象
//設備事件上報dto
@Data
public class EventReport {
private String tenantId;
private String productId;
private String deviceSn;
private String deviceId;
private String messageType;
private String IMEI;
private String IMSI;
private Long timestamp;
private Integer eventType;
private JSONObject eventContent;
private String serviceId;
private String protocol;
}
- 創建一個接口,用來接收AEP平台推送的數據
@RestController
@RequestMapping("/data")
public class DeviceData {
/**
* 設備事件上報
* @param eventReport
*/
@PostMapping("/eventReport")
public void eventReport(@RequestBody EventReport eventReport){
System.out.println(JSON.toJSONString(eventReport));
}
}
- 項目打包,放在服務器中,並啟動服務器
[root@rm rm]# nohup java -jar testapi-0.0.1-SNAPSHOT.jar &
- 在平台配置推送地址
- 選擇新建訂閱
- 選擇對應的消息類別和訂閱方url地址
- 長按按鈕,設備發送上報事件
- 查看日志輸出
# 實時監聽日志,只查看后幾行
tail nohup.out -f
2021-05-26 09:11:48.105 o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2021-05-26 09:11:48.106 o.s.web.servlet.DispatcherServlet: Completed initialization in 1 ms
# 輸出對象信息
{"deviceId":"a03e8a3d6866471d9f6d4151c07fae55","deviceSn":"",
"eventContent":{"wifi_num":0,"wifi_info":"0","latitude":0.0,
"time":1621991497000,"is_sos":0,"longitude":0.0},
"eventType":2,"messageType":"eventReport","productId":"15047914",
"protocol":"lwm2m","serviceId":"1002","tenantId":"2000035543","timestamp":1621991507922}
{"deviceId":"a03e8a3d6866471d9f6d4151c07fae55","deviceSn":"",
"eventContent":{"wifi_num":0,"wifi_info":"0","latitude":0.0,
"time":1621991503000,"is_sos":1,"longitude":0.0},
"eventType":2,"messageType":"eventReport","productId":"15047914",
"protocol":"lwm2m","serviceId":"1002","tenantId":"2000035543","timestamp":1621991507966}