kaa部署到简单的使用

KAA平台单节点部署安装(kaa-node-0.11.0)

KAA平台系列文章:

  • KAA平台单节点部署安装(kaa-node-0.10.0)
  • KAA平台的配置使用
  • KAA平台的数据上传
  • KAA平台数据下发的四种方式

文章目录

    • KAA官网:
    • 整体架构:
    • KAA安装及配置
      • 1.JDK 1.8.0_211
      • 2.MariaDB 5.5(CentOS-7以下需安装,7内置)
      • 3.Zookeeper 3.4.6
      • 4.MongoDB 4.0.10
      • 5.KAA
        • 1)安装
        • 2)检查MariaDB用户名和密码在服务器配置文件中是否有效。
        • 3)更改启动用户
        • 4)更给内部通信ip地址:
  • KAA启动及常用命令
    • 1)Zookeeper
    • 2)MongoDB(必须)
    • 3)KAA
    • 4)其他
    • 平台地址:http://***:8080/kaaAdmin

KAA官网:

https://kaaproject.github.io/kaa/docs/v0.10.0/Welcome/

整体架构:

CentOS7 + JDKjdk1.8.0_211 + zookeeper 3.4.6 + MongoDB 4.0.10 + kaa-node-0.10.0-SNAPSHOT20170816065203.noarch.rpm

KAA安装及配置

1.JDK 1.8.0_211

解压:tar -zxvf jdk.tar.gz -C /usr/local/
配置:vim /etc/profile

#my srttings 
	export JAVA_HOME=/usr/local/jdk1.8.0_211
	export PATE=$PATH:$JAVA_HOME/bin:

       
       
       
       
  • 1
  • 2
  • 3

source /etc/profile

错误:source /etc/profile -提示找不到命令
  试试:A)locate source /etc/profile
  试试:B)usr/bin/source /etc/profile

2.MariaDB 5.5(CentOS-7以下需安装,7内置)

仅参考:
检查是否安装了mariadb组件:
  rpm -qa | grep -i mariadb
删除组件
  rpm -ev 组件名

rpm -ivh MariaDB-5.5.47-centos7-x86_64-server.rpm
rpm -ivh MariaDB-5.5.47-centos7-x86_64-client.rpm

mysql -uroot -p

创建kaa数据库
CREATE DATABASE kaa CHARACTER SET utf8 COLLATE utf8_general_ci;

3.Zookeeper 3.4.6

tar -zxvf ./AppPackage/zookeeper-3.4.6.tar.gz -C ./

创建zoo.cfg

initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-3.4.6/data
dataLogDir=/usr/local/zookeeper-3.4.6/logs
clientPort=2181

       
       
       
       

    配置环境变量

    4.MongoDB 4.0.10

    解压:
      tar -zxvf ./AppPackage/mongodb-linux-x86_64-4.0.10.tgz -C ./
    启动:
      ./bin/mongod --dbpath /data/db
      ./mongo KAA

    5.KAA

    官网安装文档:
    http://kaaproject.github.io/kaa/docs/v0.10.0/Administration-guide/System-installation/

    1)安装

    检查是否安装了kaa-node组件:
      rpm -qa | grep -i 组件名
    删除组件
      rpm -ev 组件名
    安装
      rpm –ivh 组件名

    2)检查MariaDB用户名和密码在服务器配置文件中是否有效。

    $ cat /etc/kaa-node/conf/admin-dao.properties | grep jdbc_username
    jdbc_username=sqladmin
    

    $ cat /etc/kaa-node/conf/admin-dao.properties | grep jdbc_password
    jdbc_password=admin

    $ cat /etc/kaa-node/conf/sql-dao.properties | grep jdbc_username
    jdbc_username=sqladmin

    $ cat /etc/kaa-node/conf/sql-dao.properties | grep jdbc_password
    jdbc_password=admin

      如果密码或用户名不匹配,请编辑配置文件。

      $ sudo vim /etc/kaa-node/conf/admin-dao.properties
      

      $ sudo vim /etc/kaa-node/conf/sql-dao.properties

        3)更改启动用户

        启动错误
        默认需要kaa用户启动
        进入:cd /usr/lib/kaa-node/bin
        解决:更改vim ./bin/kaa-node
        在这里插入图片描述

        4)更给内部通信ip地址:

        修改地址为:“localhost”–>”192.168.0.110” 本机地址 192.168.0.110
        cd /etc/kaa-node/conf
        vim kaa-node.properties
        在这里插入图片描述在这里插入图片描述
        在这里插入图片描述

        KAA启动及常用命令

        启动顺序:Zookeeper --> MongoDB --> KAA

        1)Zookeeper

        ./zkServer.sh start
        ./zkServer.sh stop
        ./zkServer.sh status

        2)MongoDB(必须)

        启动:    ./mongod --dbpath /data/db
        启动客户端: ./bin/mongo

        show dbs;
        show collections;
        mongo kaa
        use kaa
        db.yourColl.count();
        db.logs_24473266966962431201.find();
        db.userInfo.getDB();
        db.userInfo.dataSize();

        可参考

        3)KAA

        cd /usr/lib/kaa-node/bin
        ./kaa-node start
        tail -100f /var/log/kaa/kaa-node.log
        
           
           
           
           
        • 1
        • 2
        • 3

        4)其他

        whereis kaa-node
        chmod +x *.sh
        echo "" > *.log
        cat /var/log/kaa/* | grep ERROR
        clear
        
           
           
           
           
        • 1
        • 2
        • 3
        • 4
        • 5

        平台地址:http://***:8080/kaaAdmin

        账号:kaa
        密码:kaa123
        在这里插入图片描述

        KAA平台的配置使用

        KAA平台系列文章:

        • KAA平台单节点部署安装(kaa-node-0.10.0)
        • KAA平台的配置使用
        • KAA平台的数据上传
        • KAA平台数据下发的四种方式

        文章目录

        • KAA平台地址及账号数据
            • 平台地址:
            • KAA平台管理员:
              • 1. 末端计量:
              • 2. 温度计量:
        • KAA平台的使用(以“温度计量”为例)
          • KAA管理员
              • 1.常规配置
              • 2.传出电子邮件设置
              • 3.租户:WDJL_SUN
          • 租户管理员
              • 1.应用程序
              • 2.租户用户
              • 3.租户开发商
              • 4.租户CTL
                • com.zht.cn.NotificationPoint
                • com.zht.cn.TerminalMeasurement
          • 租户用户
              • 1.SDK配置文件
              • 2.Schemas
                • a) 客户端EP配置文件:默认即可
                • b) 服务器端EP配置文件:默认即可
                • c) 配置:默认即可
                • d) 通知
                • e) Log
              • 3.通知主题
              • 4.端点组
              • 5.事件族映射:没有使用
              • 6.日志追踪器
              • 7.用户验证器:没有使用
              • 8.用户:没有使用
              • 9.端点配置文件
              • 10.应用程序CTL:没有使用
              • 11.租户CTL:默认即可

        KAA平台地址及账号数据

        平台地址:

        http://192.168.0.110:8080/kaaAdmin

        KAA平台管理员:

        • KAA管理员账号:kaa
        • KAA管理员密码:kaa123

        1. 末端计量:

        : a) 租户名称:MDJL_PLC
          b) 租户管理员:MDJL_PLC
          c) 租户用户:MDJL_DEV

        2. 温度计量:

        : a) 租户名称:WDJL_SUN
          b) 租户管理员:WDJL_SUN
          c) 租户开发商:WDJL_SKF
          d) 租户用户:WDJL_SYH

        KAA平台的使用(以“温度计量”为例)

        KAA管理员

        1.常规配置

        在这里插入图片描述

        2.传出电子邮件设置

        在这里插入图片描述
        注意:qq邮箱需要开启SMTP,否则不能发送邮件。
        在这里插入图片描述

        3.租户:WDJL_SUN

        在这里插入图片描述
        添加租户并创建租户管理员账号
        添加租户并创建租户管理员账号

        租户管理员

        1.应用程序

        注意:凭据服务:Trustful
        在这里插入图片描述

        2.租户用户

        在这里插入图片描述

        3.租户开发商

        在这里插入图片描述

        4.租户CTL

        com.zht.cn.NotificationPoint

        在这里插入图片描述
        在这里插入图片描述

        com.zht.cn.TerminalMeasurement


        这里示例4个
        在这里插入图片描述
        在这里插入图片描述

        租户用户

        1.SDK配置文件

        生成SDK前提条件是配置好  Schemas(通知、Log),通知主题,端点组,日志追加器
        在这里插入图片描述
        在这里插入图片描述

        2.Schemas

        a) 客户端EP配置文件:默认即可
        b) 服务器端EP配置文件:默认即可
        c) 配置:默认即可
        d) 通知

        配置下发通知具体参数类型

        在这里插入图片描述
        在这里插入图片描述
        在这里插入图片描述
        选择现有类型:即选择 “租户管理员” 创建的 “租户CTL”。
        每次添加新架构时,Kaa都会为其分配新的版本号。

        e) Log

        具体的上传参数,该属性需要和各个公司来定
        在这里插入图片描述
        在这里插入图片描述
        在这里插入图片描述

        3.通知主题

        该功能配置之后,可以下发通知给终端
        创建一个ALL通知即可
        在这里插入图片描述
        在这里插入图片描述
        注:强制性√

        4.端点组

        选择并添加 通知主题 到端点组
        在这里插入图片描述

        5.事件族映射:没有使用

        6.日志追踪器

        各公司上传数据保存所使用的数据库
        由于该平台以及数据库部署在同一服务器,所以MongoDB参数设置为localhost即可
        在这里插入图片描述
        在这里插入图片描述
        在这里插入图片描述

        7.用户验证器:没有使用

        8.用户:没有使用

        9.端点配置文件

        当SDK被终端所使用,就会生成该SDK所对应的键哈希,
        不删除键哈希,无法删除SDK,防止终端使用的SDK被删除。
        在这里插入图片描述

        10.应用程序CTL:没有使用

        11.租户CTL:默认即可

        KAA平台的数据上传

        KAA平台系列文章:

        • KAA平台单节点部署安装(kaa-node-0.10.0)
        • KAA平台的配置使用
        • KAA平台的数据上传
        • KAA平台数据下发的四种方式

        文章目录

        • KAA平台的数据上传
          • 1.生成SDK
          • 2.客户端应用代码编写
                • a) 为您的操作系统安装Oracle JDK 8。
                • b) 创建一个demo_app目录,创建Java程序,并编写代码,
                  • 官方代码示例:
                  • 湿度计量代码示例:
                • c)创建lib,放入jar包
                • d)启动程序
          • 3.检索收集的数据:
                • a) 应用程序页面复制应用令牌;
                • b) 进入mongodb客户端:

        KAA平台的数据上传

        官网

        1.生成SDK

        1)在“ 应用程序”列表中选择新应用程序,然后单击“ 生成SDK”按钮。

        在这里插入图片描述
        2) 在Generate SDK窗口中,选择SDK的目标平台,然后单击Generate SDK。
        在这里插入图片描述

        2.客户端应用代码编写

        a) 为您的操作系统安装Oracle JDK 8。
        b) 创建一个demo_app目录,创建Java程序,并编写代码,
        官方代码示例:
        import org.kaaproject.kaa.client.DesktopKaaPlatformContext;
        import org.kaaproject.kaa.client.Kaa;
        import org.kaaproject.kaa.client.KaaClient;
        import org.kaaproject.kaa.client.SimpleKaaClientStateListener;
        import org.kaaproject.kaa.client.configuration.base.ConfigurationListener;
        import org.kaaproject.kaa.client.configuration.base.SimpleConfigurationStorage;
        import org.kaaproject.kaa.client.logging.strategies.RecordCountLogUploadStrategy;
        import org.kaaproject.kaa.schema.sample.Configuration;
        import org.kaaproject.kaa.schema.sample.DataCollection;
        import org.slf4j.Logger;
        import org.slf4j.LoggerFactory;
        import java.io.IOException;
        import java.util.Random;
        import java.util.concurrent.Executors;
        import java.util.concurrent.ScheduledExecutorService;
        import java.util.concurrent.ScheduledFuture;
        import java.util.concurrent.TimeUnit;
        

        /**

        • Class implement functionality for First Kaa application. Application send temperature data

        • from the Kaa endpoint with required configured sampling period
          */
          public class FirstKaaDemo {

          private static final long DEFAULT_START_DELAY = 1000L;

          private static final Logger LOG = LoggerFactory.getLogger(FirstKaaDemo.class);

          private static KaaClient kaaClient;

          private static ScheduledFuture<?> scheduledFuture;
          private static ScheduledExecutorService scheduledExecutorService;

          public static void main(String[] args) {
          LOG.info(FirstKaaDemo.class.getSimpleName() + " app starting!");

           scheduledExecutorService = Executors.newScheduledThreadPool(1);
          
           //Create the Kaa desktop context for the application.
           DesktopKaaPlatformContext desktopKaaPlatformContext = new DesktopKaaPlatformContext();
          
           /*
            * Create a Kaa client and add a listener which displays the Kaa client
            * configuration as soon as the Kaa client is started.
            */
           kaaClient = Kaa.newClient(desktopKaaPlatformContext, new FirstKaaClientStateListener(), true);
          
           /*
            *  Used by log collector on each adding of the new log record in order to check whether to send logs to server.
            *  Start log upload when there is at least one record in storage.
            */
           RecordCountLogUploadStrategy strategy = new RecordCountLogUploadStrategy(1);
           strategy.setMaxParallelUploads(1);
           kaaClient.setLogUploadStrategy(strategy);
          
           /*
            * Persist configuration in a local storage to avoid downloading it each
            * time the Kaa client is started.
            */
           kaaClient.setConfigurationStorage(new SimpleConfigurationStorage(desktopKaaPlatformContext, "saved_config.cfg"));
          
           kaaClient.addConfigurationListener(new ConfigurationListener() {
               @Override
               public void onConfigurationUpdate(Configuration configuration) {
                   LOG.info("Received configuration data. New sample period: {}", configuration.getSamplePeriod());
                   onChangedConfiguration(TimeUnit.SECONDS.toMillis(configuration.getSamplePeriod()));
               }
           });
          
           //Start the Kaa client and connect it to the Kaa server.
           kaaClient.start();
          
           LOG.info("--= Press any key to exit =--");
           try {
               System.in.read();
           } catch (IOException e) {
               LOG.error("IOException has occurred: {}", e.getMessage());
           }
           LOG.info("Stopping...");
           scheduledExecutorService.shutdown();
           kaaClient.stop();
          

          }

          /*

          • Method, that emulate getting temperature from real sensor.
          • Retrieves random temperature.
            */
            private static int getTemperatureRand() {
            return new Random().nextInt(10) + 25;
            }

          private static void onKaaStarted(long time) {
          if (time <= 0) {
          LOG.error(“Wrong time is used. Please, check your configuration!”);
          kaaClient.stop();
          System.exit(0);
          }

           scheduledFuture = scheduledExecutorService.scheduleAtFixedRate(
                   new Runnable() {
                       @Override
                       public void run() {
                           int temperature = getTemperatureRand();
                           kaaClient.addLogRecord(new DataCollection(temperature));
                           LOG.info("Sampled Temperature: {}", temperature);
                       }
                   }, 0, time, TimeUnit.MILLISECONDS);
          

          }

          private static void onChangedConfiguration(long time) {
          if (time == 0) {
          time = DEFAULT_START_DELAY;
          }
          scheduledFuture.cancel(false);

           scheduledFuture = scheduledExecutorService.scheduleAtFixedRate(
                   new Runnable() {
                       @Override
                       public void run() {
                           int temperature = getTemperatureRand();
                           kaaClient.addLogRecord(new DataCollection(temperature));
                           LOG.info("Sampled Temperature: {}", temperature);
                       }
                   }, 0, time, TimeUnit.MILLISECONDS);
          

          }

          private static class FirstKaaClientStateListener extends SimpleKaaClientStateListener {

           @Override
           public void onStarted() {
               super.onStarted();
               LOG.info("Kaa client started");
               Configuration configuration = kaaClient.getConfiguration();
               LOG.info("Default sample period: {}", configuration.getSamplePeriod());
               onKaaStarted(TimeUnit.SECONDS.toMillis(configuration.getSamplePeriod()));
           }
          
           @Override
           public void onStopped() {
               super.onStopped();
               LOG.info("Kaa client stopped");
           }
          

          }
          }

        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 17
        • 18
        • 19
        • 20
        • 21
        • 22
        • 23
        • 24
        • 25
        • 26
        • 27
        • 28
        • 29
        • 30
        • 31
        • 32
        • 33
        • 34
        • 35
        • 36
        • 37
        • 38
        • 39
        • 40
        • 41
        • 42
        • 43
        • 44
        • 45
        • 46
        • 47
        • 48
        • 49
        • 50
        • 51
        • 52
        • 53
        • 54
        • 55
        • 56
        • 57
        • 58
        • 59
        • 60
        • 61
        • 62
        • 63
        • 64
        • 65
        • 66
        • 67
        • 68
        • 69
        • 70
        • 71
        • 72
        • 73
        • 74
        • 75
        • 76
        • 77
        • 78
        • 79
        • 80
        • 81
        • 82
        • 83
        • 84
        • 85
        • 86
        • 87
        • 88
        • 89
        • 90
        • 91
        • 92
        • 93
        • 94
        • 95
        • 96
        • 97
        • 98
        • 99
        • 100
        • 101
        • 102
        • 103
        • 104
        • 105
        • 106
        • 107
        • 108
        • 109
        • 110
        • 111
        • 112
        • 113
        • 114
        • 115
        • 116
        • 117
        • 118
        • 119
        • 120
        • 121
        • 122
        • 123
        • 124
        • 125
        • 126
        • 127
        • 128
        • 129
        • 130
        • 131
        • 132
        • 133
        • 134
        • 135
        • 136
        • 137
        • 138
        • 139
        • 140
        • 141
        • 142
        • 143
        • 144
        • 145
        湿度计量代码示例:
        import com.zhyh.cn.NotificationPoint;
        import com.zhyh.cn.TerminalMeasurement;
        import org.kaaproject.kaa.client.DesktopKaaPlatformContext;
        import org.kaaproject.kaa.client.Kaa;
        import org.kaaproject.kaa.client.KaaClient;
        import org.kaaproject.kaa.client.SimpleKaaClientStateListener;
        import org.kaaproject.kaa.client.configuration.base.ConfigurationListener;
        import org.kaaproject.kaa.client.configuration.base.SimpleConfigurationStorage;
        import org.kaaproject.kaa.client.logging.strategies.RecordCountLogUploadStrategy;
        import org.kaaproject.kaa.client.notification.NotificationListener;
        import org.kaaproject.kaa.common.endpoint.gen.Topic;
        import org.kaaproject.kaa.schema.system.EmptyData;
        import org.slf4j.Logger;
        import org.slf4j.LoggerFactory;
        

        import java.io.IOException;
        import java.util.List;
        import java.util.Random;
        import java.util.concurrent.Executors;
        import java.util.concurrent.ScheduledExecutorService;
        import java.util.concurrent.ScheduledFuture;
        import java.util.concurrent.TimeUnit;

        /**

        • Class implement functionality for First Kaa application. Application send temperature data

        • from the Kaa endpoint with required configured sampling period
          */
          public class FirstKaaDemo {

          private static final long DEFAULT_START_DELAY = 1000L;

          private static final Logger LOG = LoggerFactory.getLogger(FirstKaaDemo.class);

          private static KaaClient kaaClient;

          private static ScheduledFuture<?> scheduledFuture;
          private static ScheduledExecutorService scheduledExecutorService;

          public static void main(String[] args) {
          System.out.println(FirstKaaDemo.class.getSimpleName() + " app starting!");
          scheduledExecutorService = Executors.newScheduledThreadPool(1);

           //Create the Kaa desktop context for the application.
           //kaa上下文环境
           DesktopKaaPlatformContext desktopKaaPlatformContext = new DesktopKaaPlatformContext();
          
           /*
            * Create a Kaa client and add a listener which displays the Kaa client
            * configuration as soon as the Kaa client is started.
            * 重新创建Kaa客户机并添加一个显示Kaa客户机的侦听器
            */
           kaaClient = Kaa.newClient(desktopKaaPlatformContext, new FirstKaaClientStateListener(), true);
          
           /*
            *  Used by log collector on each adding of the new log record in order to check whether to send logs to server.
            *  Start log upload when there is at least one record in storage.
            *  日志收集器在每次添加新日志记录时使用,以检查是否将日志发送到服务器。当存储中至少有一条记录时,启动日志上传。
            */
           RecordCountLogUploadStrategy strategy = new RecordCountLogUploadStrategy(1);
           strategy.setMaxParallelUploads(1);
           kaaClient.setLogUploadStrategy(strategy);
          
           /*
            * Persist configuration in a local storage to avoid downloading it each
            * time the Kaa client is started.
            * 将配置保存在本地存储中,以避免每次下载配置启动Kaa客户机的时间
            */
           kaaClient.setConfigurationStorage(new SimpleConfigurationStorage(desktopKaaPlatformContext, "saved_config.cfg"));
          
           kaaClient.addConfigurationListener(
                   new ConfigurationListener() {
                       public void onConfigurationUpdate(EmptyData configuration) {
                           System.out.println("Received configuration data. New sample period: {}" + configuration.get(1));
                       }
                   }
          

        /* new ConfigurationListener() {

                @Override
                public void onConfigurationUpdate(Configuration configuration) {
                    System.out.println("Received configuration data. New sample period: {}", configuration.getSamplePeriod());
                    onChangedConfiguration(TimeUnit.SECONDS.toMillis(configuration.getSamplePeriod()));
                }
            }*/
        
            );
        
            //添加监听器
            kaaClient.addNotificationListener(new NotificationListener() {
                @Override
                public void onNotification(long topicId, NotificationPoint notification) {
                    System.err.println("1111111111111111111111111" + topicId + notification.getMessage());
                }
            });
            //Start the Kaa client and connect it to the Kaa server.
            //启动Kaa客户机并将其连接到Kaa服务器。
            kaaClient.start();
        
            List<Topic> topics = kaaClient.getTopics();
            for (Topic topic : topics) {
                System.out.printf("Id: %s, name: %s, type: %s"
                        , topic.getId(), topic.getName(), topic.getSubscriptionType());
            }
        
            System.out.println("--= Press any key to exit =--");
            try {
                System.in.read();
            } catch (IOException e) {
                LOG.error("IOException has occurred: {}", e.getMessage());
            }
            System.out.println("Stopping...");
            scheduledExecutorService.shutdown();
            kaaClient.stop();
        }
        
        /*
         * Method, that emulate getting temperature from real sensor.
         * Retrieves random temperature.
         * 方法,模拟从实际传感器获取温度。获取随机温度
         */
        private static int getTemperatureRand() {
            return new Random().nextInt(110) + 1125;
        }
        
        private static void onKaaStarted(long time) {
            if (time <= 0) {
                LOG.error("Wrong time is used. Please, check your configuration!");
                kaaClient.stop();
                System.exit(0);
            }
        
            scheduledFuture = scheduledExecutorService.scheduleAtFixedRate(
                    new Runnable() {
                        public void run() {
                            for (int i = 0; i < 10000; i++) {
                                int temperature = getTemperatureRand();
                                TerminalMeasurement record = new TerminalMeasurement("0909",""+temperature,""+temperature,"EPID001");
                                kaaClient.addLogRecord(record);
                                System.out.println("Sampled Temperature: {}" + temperature);
                            }
                        }
                    }, 0, time, TimeUnit.MILLISECONDS);
        }
        
        
        private static class FirstKaaClientStateListener extends SimpleKaaClientStateListener {
        
            @Override
            public void onStarted() {
                super.onStarted();
                System.out.println("Kaa client started");
                EmptyData configuration = kaaClient.getConfiguration();
                //System.out.println("Default sample period: {}" + configuration.get(0));
                onKaaStarted(TimeUnit.SECONDS.toMillis(1000));
            }
        
            @Override
            public void onStopped() {
                super.onStopped();
                System.out.println("Kaa client stopped");
            }
        }
        

        }

        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 17
        • 18
        • 19
        • 20
        • 21
        • 22
        • 23
        • 24
        • 25
        • 26
        • 27
        • 28
        • 29
        • 30
        • 31
        • 32
        • 33
        • 34
        • 35
        • 36
        • 37
        • 38
        • 39
        • 40
        • 41
        • 42
        • 43
        • 44
        • 45
        • 46
        • 47
        • 48
        • 49
        • 50
        • 51
        • 52
        • 53
        • 54
        • 55
        • 56
        • 57
        • 58
        • 59
        • 60
        • 61
        • 62
        • 63
        • 64
        • 65
        • 66
        • 67
        • 68
        • 69
        • 70
        • 71
        • 72
        • 73
        • 74
        • 75
        • 76
        • 77
        • 78
        • 79
        • 80
        • 81
        • 82
        • 83
        • 84
        • 85
        • 86
        • 87
        • 88
        • 89
        • 90
        • 91
        • 92
        • 93
        • 94
        • 95
        • 96
        • 97
        • 98
        • 99
        • 100
        • 101
        • 102
        • 103
        • 104
        • 105
        • 106
        • 107
        • 108
        • 109
        • 110
        • 111
        • 112
        • 113
        • 114
        • 115
        • 116
        • 117
        • 118
        • 119
        • 120
        • 121
        • 122
        • 123
        • 124
        • 125
        • 126
        • 127
        • 128
        • 129
        • 130
        • 131
        • 132
        • 133
        • 134
        • 135
        • 136
        • 137
        • 138
        • 139
        • 140
        • 141
        • 142
        • 143
        • 144
        • 145
        • 146
        • 147
        • 148
        • 149
        • 150
        • 151
        • 152
        • 153
        • 154
        • 155
        • 156
        • 157
        • 158
        • 159
        • 160
        • 161
        • 162
        • 163
        • 164
        c)创建lib,放入jar包

        SDK + slf4j
        下载slf4j-simple-1.7.21.jar 地址:
        http://central.maven.org/maven2/org/slf4j/slf4j-simple/1.7.21/slf4j-simple-1.7.21.jar

        在这里插入图片描述
        在这里插入图片描述

        d)启动程序

        3.检索收集的数据:

        a) 应用程序页面复制应用令牌;

        在这里插入图片描述

        b) 进入mongodb客户端:

        ./mongo kaa
        show dbs;
        show collections;
        db.logs_15464214871215164.count();
        db.logs_15464214871215164.find();
        db.notification.find()

        KAA平台数据下发的四种方式

        KAA平台系列文章:

        • KAA平台单节点部署安装(kaa-node-0.10.0)
        • KAA平台的配置使用
        • KAA平台的数据上传
        • KAA平台数据下发的四种方式

        文章目录

        • 一、网页形式
        • 二、脚本形式
        • 三、Postman
        • 四、JAVA代码

        一、网页形式

        官网:http://kaaproject.github.io/kaa/docs/v0.10.0/Programming-guide/Key-platform-features/Notifications/

        配置: 通知 --> 通知主题 --> 端点组,即可在“通知主题”下发通知
        kaa部署到简单的使用_第1张图片kaa部署到简单的使用_第2张图片
        kaa部署到简单的使用_第3张图片
        kaa部署到简单的使用_第4张图片
        注:代码见KAA平台的数据上传
        kaa部署到简单的使用_第5张图片

        二、脚本形式

        接口地址:
        http://192.168.0.110:8080/kaaAdmin/rest/api/sendUnicastNotification

        得到通知模式的schema_id:  db.notification.find()
        授权:  chmod +x *.sh

        其他数据在MariaDB数据库获取

        1262358.sh

        curl -v -S -u WDJL_SYH:kaa123  -F 'notification={"applicationId":"131072","schemaId":"163845","topicId":"98304","type":"USER"};
        type=application/json'  -F 'endpointKeyHash=74xdPqVyQZ0eLmrLSj2P2Q8kPfo=;
        type=text/plain'  -F file=@/usr/local/S/168369519.json
        "http://192.168.0.110:8080/kaaAdmin/rest/api/sendUnicastNotification"
        
               
               
               
               
        • 1
        • 2
        • 3
        • 4

        1262358.json

        {"Message": "fn:24,seq:1502097735986,type:request,du:[{epid:31431793435902E0,controlType:1},
        {epid:31431793435902E1,controlType:1}]"}
        
               
               
               
               
        • 1
        • 2

        123.json

        {"Message": "下发消息:12345,上山打老虎。"}
        
               
               
               
               
        • 1

        三、Postman

        接口地址:
        http://192.168.0.110:8080/kaaAdmin/rest/api/sendUnicastNotification
        kaa部署到简单的使用_第6张图片
        kaa部署到简单的使用_第7张图片

        四、JAVA代码

        你可能感兴趣的:(kaa,后台,KAA平台,KAA平台,KAA平台,KAA平台)