本流程为客户端接受服务端推送的最新数据。
服务端通过这个指令包的数据段将最新数据推送给客户端,其中数据段是一个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",
...
},{
.....
},
......
]
参数名称 | 说明 |
---|---|
placeId | placeId 安装点ID |
equipId | equipId 设备ID |
equipType | 安装设备类别 |
resend | 是否是设备重发的历史数据,true表示为历史数据,false表示为实时数据 |
sampletime | 监测时间 |
c3 | 请参考:设备数据说明 |
c4 | 请参考:设备数据说明 |
c5 | 请参考:设备数据说明 |