调用第三方接口实现数据可视化

调用第三方接口实现数据可视化的功能:

业务实现:调用中间件数据接口——获得传感器实时数据——图表展示

虽然看似很简单一个功能 但是在做的过程中还是走了很多弯路,因为完全是第一次做嘛!!当然这不是借口 也不是托词,下面我要开始陈述我的采坑过程了~~~~~

刚开始不明确业务逻辑 什么节点,传感器,什么APPEUI,DEVEUI,完全不知道是干啥用的,一脸闷逼的我哈。准备了一下几种实施方案:

        方案一:直接用MQTT获取实时数据,然后写了一个MQTT 的客户端 用来发送TCP请求 实现订阅获得数据。很完美 呵呵 ~获取到数据了。但是发现了一个问题, 我的数据是要通过chart直接展示的,也就是说需要用户在出发AJax请求的时候 就需要立即展示出一段时间范围内全部数据变化趋势,而MQTT传回客户端大概每隔19秒才传回一条数据。很显然这样是行不通的。。。。。在此有人可能会说 那你为什么不把传回的数据直接存到数据库呢,然后ajax直接请求数据库的数据不就行了! 待我假装沉思几秒。。。。。。。这种方案确实可行呢 ,但是我觉得它还是有以下一个弊端:

  1. 因为每个节点传回的数据类型都是不同的,这就意味着 有多少种类型 就需要建相应的表,去储存 这样当类型很多的时候,数据量特别大的时候 很消耗内存。我们既然值做个数据可视化 ,那完全就没有这种必要了嘛!

       方案二:直接调用第三方平台的的日志数据,而且都不用我去获取jwt直接跳过登录直接获取数据了而且还是解析完的数据,都不用我再去解密了。。卧槽感觉我的这个想法太完美了。但是当我看到返回的一堆数据是这样的: QQ截图20181124124211

完全不是json格式嘛………….获取自己想要的数据太麻烦了,果断放弃了这种方式。。。。

      方案三:也是最后实行的一种方案。直接调用历史数据接口。

  1. 我在登陆的时候获得用httpclient带用户名和密码发送请求获得jwt,然后储存在session当中,

然后带着jwt 请求相应的数据接口获得数据。

Ajax请求的方法

 

QQ截图201811241304sss04

说明:transformation()这个方法是根据通讯协议解密rs485Payload对应的的值的。被我用最笨的方法截取出来,最后组成json串返回的。

被请求的方法:

 

前台 ajax 请求的方法: