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

# 流程描述

客户端通过向服务端发送同步开始包,通知服务端开始推送最新数据。

# 说明

通过执行该流程,客户端向服务端发送同步开始包,通知服务端开始推送最新数据。

# 流程执行

  •       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 8:
            console.log("认证成功,开始发送开始同步包")
            sendBegin(msgBuf)
            break;
          default:
            break;
        }
    });
    
    /**
     * 发送开始同步包
     * @param msg
     */
    function sendBegin(msg) {
      var newObj = JSON.parse(msg.toString()  || '[]')
      if(newObj == null || newObj == undefined)
        return;
      var token = newObj.token
      if(token == null || newObj == undefined)
        return;
      client.write(getBeginMsg(token))
    }
    
    /**
     * 生成开始同步包
     * @param data
     */
    function getBeginMsg(token) {
      const bufHead = Buffer.from([0,0,1,2]);
      const bufMsg = Buffer.from(token)
      const buflength = Buffer.alloc(4,0)
      buflength.writeIntBE(bufMsg.length, 0, 4);
      const totalLength = bufHead.length + buflength.length + bufMsg.length;
      return Buffer.concat([bufHead,buflength,bufMsg],totalLength);
    
    }

# 调用参数

参数名称必填说明
token服务端返回的token字段,用于权限验证。

# 接口响应

客户端收到服务端返回的同步开始返回包。

# 响应数据

返回数据类型为字节流,包括包头和包数据,返回的包类型为同步开始返回包。

  • 包字节流示例:

00 00 01 03 00 00 00 00

# 响应包头

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

名称类型长度返回值
固定位数字2字节为 00 00
版本号数字1字节为 01
指令码数字1字节为03,同步开始返回包,服务端发送这个包给客户端确认开始推送最新数据
包数据长度数字4字节为包数据段的长度

# 响应包数据

无响应包数据

# 响应参数