日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

數據壓縮

數據壓縮功能支持設備與物聯網平臺之間的消息傳輸,壓縮數據,從而節約設備流量、提高傳輸速度。本文介紹數據壓縮功能的使用。

前提條件

使用限制

數據壓縮僅支持尊享型企業版實例標準型企業版實例。更多信息,請參見購買企業版實例。

背景信息

部分物聯網設備使用的是蜂窩網絡,流量成本比較高。數據壓縮功能通過對傳輸的數據進行壓縮,以達到節約流量的目的。

數據壓縮通信的詳細說明,請參見數據壓縮

直連設備

設置壓縮和解壓縮的Topic

下述Demo中:

  • compTopic列表:指定Topic用于服務端下發消息到設備,服務端進行數據壓縮,設備端要相應地進行數據解壓縮。

  • decompTopic列表:指定Topic用于設備上報消息到服務端,設備端進行數據壓縮,服務端要相應地進行數據解壓縮,設備端會有hit data compression case的debug級別的日志。

重要
  • 已設置的壓縮和解壓縮關系會保存在服務端,需設備端SDK執行取消壓縮和解壓縮操作,才能讓服務端取消對相應Topic的壓縮和解壓縮操作。

    如果服務端未取消壓縮和解壓縮操作,對應設備通過一個不支持數據壓縮的SDK登錄后,設備與服務端通信可能會有問題。

  • 不可以將Topic:/sys/${productKey}/${deviceName}/thing/dsltemplate/get_reply加入到compTopicList中,否則會影響SDK初始化。

  • 壓縮和解壓縮功能不支持使用帶通配符的Topic。

//指定服務端壓縮,設備端解壓縮的Topic
String compTopic =  "/" + deviceInfoData.productKey + "/" + deviceInfoData.deviceName + "/user/get";
List<String> compTopicList = new ArrayList<>();
compTopicList.add(compTopic);

//指定設備端壓縮,服務端解壓縮的Topic
String decompTopic = "/sys/" + deviceInfoData.productKey + "/" + deviceInfoData.deviceName + "/thing/event/property/post";
List<String> decompTopicList = new ArrayList<>();
decompTopicList.add(decompTopic);

ICompressor compressor = LinkKit.getInstance().getCompressor();
compressor.setCompressTopics(compTopicList, decompTopicList, new IConnectSendListener() {
    @Override
    public void onResponse(ARequest aRequest, AResponse aResponse) {

        //TODO: 用戶邏輯,比如上報屬性等操作
    }

    @Override
    public void onFailure(ARequest aRequest, AError aError) {

    }
});
重要

setCompressTopics方法中:

  • 第一個入參:指定服務端壓縮,設備端解壓縮的Topic列表,可以為null。

  • 第二個入參:指定設備端壓縮,服務端解壓縮的Topic列表,可以為null。

取消壓縮和解壓縮

ICompressor compressor = LinkKit.getInstance().getCompressor();
compressor.setCompressTopics(null, null, new IConnectSendListener() {
    @Override
    public void onResponse(ARequest aRequest, AResponse aResponse) {

        //TODO: your logic
    }

    @Override
    public void onFailure(ARequest aRequest, AError aError) {

    }
});

網關子設備

設置壓縮和解壓縮的Topic

下述Demo中:

  • compTopic列表:指定Topic用于服務端下發消息到設備,服務端進行數據壓縮,設備端要相應地進行數據解壓縮。

  • decompTopic列表:指定Topic用于設備上報消息到服務端,設備端進行數據壓縮,服務端要相應地進行數據解壓縮,設備端會有hit data compression case的debug級別的日志。

重要
  • 已設置的壓縮和解壓縮關系會保存在服務端,需設備端SDK執行取消壓縮和解壓縮操作,才能讓服務端取消對相應Topic的壓縮和解壓縮操作。

    如果服務端未取消壓縮和解壓縮操作,對應設備通過一個不支持數據壓縮的SDK登錄后,設備與服務端通信可能會有問題。

  • 壓縮和解壓縮功能不支持使用帶通配符的Topic。

  • 網關子設備和網關設備本身,不能同時使用壓縮和解壓縮能力,否則會沖突。

//TODO 需要在子設備login成功后才能進行壓縮的操作
final DeviceInfo info = new DeviceInfo(); 
//TODO 需要將info設置為您的某個已經login成功的子設備
// info = userSubDev.get(index);

//指定服務端壓縮,設備端解壓縮的Topic
String compTopic =  "/" + info.productKey + "/" + info.deviceName + "/user/get";
List<String> compTopicList = new ArrayList<>();
compTopicList.add(compTopic);

//指定設備端壓縮,服務端解壓縮的Topic
String decompTopic = "/sys/" + info.productKey + "/" + info.deviceName + "/thing/event/property/post";
List<String> decompTopicList = new ArrayList<>();
decompTopicList.add(decompTopic);
String detopic2 = "/" + info.productKey + "/" + info.deviceName + "/user/update";
decompTopicList.add(detopic2);

LinkKit.getInstance().getGateway().gatewaySubDeviceSetCompressTopics(info, compTopicList, decompTopicList, new ISubDeviceActionListener() {
    @Override
    public void onSuccess() {
        //TODO: 子設備上行消息,比如上報屬性等
    }

    @Override
    public void onFailed(AError aError) {

    }
});

取消壓縮和解壓縮

LinkKit.getInstance().getGateway().gatewaySubDeviceSetCompressTopics(info, null, null, new ISubDeviceActionListener() {
    @Override
    public void onSuccess() {
        //TODO: 子設備上行消息,比如上報屬性等
    }

    @Override
    public void onFailed(AError aError) {

    }
});