物聯網設備的數據推送


數據推送:

  • 終端產生的數據通過物聯網平台推送給北向的應用的一種服務

數據推送分為HTTP推送MQ推送

1. HTTP消息推送

物聯網開放平台將符合訂閱條件的設備信息以HTTP方式推送至北向應用。

用戶可以通過門戶或者調用北向API接口添加北向應用訂閱url,平台可以將符合訂閱條件的設備消息以HTTP POST方式推送至指定的url。目前支持設備數據變化通知、設備指令響應通知、設備事件上報通知、設備上下線通知等消息類型的訂閱,各協議對應消息類型及格式參見訂閱推送消息格式。訂閱級別分為設備級,產品級和分組級。目前訂閱生效時間為1分鍾左右。 支持HTTP和HTTPs兩種推送方式,HTTPs方式具備數字簽名和通訊加密能力,具有較高的安全性。HTTP推送方式采用明文傳輸,可能造成推送消息被竊聽或篡改,具有安全風險,請慎重選擇,建議用戶采用HTTPs方式來接收推送消息。
在這里插入圖片描述

在北向應用創建一個接收數據的接口
配置平台推送地址

  • 設備級訂閱
  • 產品級訂閱
  • 分組級訂閱

平台推薦使用HTTPS安全訂閱

1.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;
}
  1. 創建一個接口,用來接收AEP平台推送的數據
@RestController
@RequestMapping("/data")
public class DeviceData {
    /**
     * 設備事件上報
     * @param eventReport
     */
    @PostMapping("/eventReport")
    public void eventReport(@RequestBody EventReport eventReport){
        System.out.println(JSON.toJSONString(eventReport));
    }
}
  1. 項目打包,放在服務器中,並啟動服務器
[root@rm rm]# nohup java -jar testapi-0.0.1-SNAPSHOT.jar &
  1. 在平台配置推送地址
  • 選擇新建訂閱
    在這里插入圖片描述
  • 選擇對應的消息類別和訂閱方url地址
    在這里插入圖片描述
  1. 長按按鈕,設備發送上報事件
  2. 查看日志輸出
# 實時監聽日志,只查看后幾行
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}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM