菜单
Socket数据接口 > API Reference > 最新数据
最新数据 最近更新时间:2020-10-20 10:31:13

# 流程描述

本流程为客户端接受服务端推送的最新数据。

# 说明

服务端通过这个指令包的数据段将最新数据推送给客户端,其中数据段是一个json格式的字符串。

# 流程执行

  •       client.on('data', function(data) {
        const buf = Buffer.from(data,'utf-8')
        const msgType = buf[3]
        const msgLenBuf = Buffer.from([buf[4],buf[5],buf[6],buf[7]])
        const msgLength = msgLenBuf.readInt32BE(0)
        const msgBuf = Buffer.alloc(msgLength)
        buf. copy(msgBuf,0,8,msgLength + 8);
        switch (msgType){
          case 6:
            console.log("接受服务端推送的最新数据")
            readData(msgBuf)
            break;
          default:
            break;
        }
    
    /**
     * 读取实时数据
     * @param msg
     */
    function readData(msg) {
      console.log("接受数据为:" + msg.toString())
      var newObjList = JSON.parse(msg.toString()  || '[]')
      if(newObjList == null || newObjList == undefined)
        return;
      for(var obj in newObjList){
        //TODO 实时数据处理
      }
    }

# 调用参数

无调用参数

# 接口响应

客户端收到服务端返回的最新数据包。

# 响应数据

返回数据类型为字节流,包括包头和包数据,返回包类型为最新数据包。

# 响应包头

返回的包头结构表如下所示:

名称类型长度返回值
固定位数字2字节为 00 00
版本号数字1字节为 01
指令码数字1字节为06,服务端向客户端发送最新数据
包数据长度数字4字节为包数据段的长度

# 响应包数据

包数据json字符串示例:

  •       [
      {
        "placeId" : "1234",
        "equipId" : "xxxx",
        "equipType": "xxxx",
        "resend" : false,
        "sampletime" : "2019-01-01 01:01:01",
        "c3" : "4.123",
        "c4" : "4.123",
        "c5" : "4.123",
        ...
      },{
        .....
      },
      ......
    ]

# 响应参数

参数名称说明
placeIdplaceId 安装点ID
equipIdequipId 设备ID
equipType安装设备类别
resend是否是设备重发的历史数据,true表示为历史数据,false表示为实时数据
sampletime监测时间
c3请参考:设备数据说明
c4请参考:设备数据说明
c5请参考:设备数据说明