Пакет для передачи данных

«Пакет» — единица данных для обмена информацией. Обмен данными между мобильным устройством происходить при помощи «пакетов». Пакет состоит из:

  • заголовка;
  • метаданных;
  • строкового блока;
  • бинарного блока.

Заголовок

– представляет из себя строку, в которой указывается число. Число предназначено для определения длины метаданных. Строка имеет длину 16 символов и состоит из типа, чисел, «наполнителя» и статуса пакета. Наполнителем должен являться символ «.» (точка). Статусы пакета: 

  • 0 – создан
  • 1 – доставлен 
  • 2 – в обработке 
  • 3 – обработан 
  • 9 – обработан с ошибкой

Пример

NML950………0

, где NML — тип пакета, 950 – это длина строки, в которой содержатся метаданные «пакета», а остальные символы — это «наполнители».

Примечание: Длина строки должна равняться 16 символам.

Метаданные

Блок предназначен для хранения дополнительной информации о пакете. Данные хранятся в формате JSON. Основные поля:

  • stringSize: integer – длина строки, в которой хранится строковый блок 
  • binarySize: integer – длина блока, в которой хранится бинарный блок 
  • attachments: any[] – метаданные для бинарных данных 
  • size: integer – длина бинарного файла;
  • transaction: boolean – выполнять инструкции строкового блока (to или from) в одной транзакции или нет. По умолчанию false;
  • dataInfo: string — Тип данных, например, service/full/meduim/lite. По умолчанию может быть не указан. Подробнее смотреть ниже;
  • version: string – версия протокола для обработки «пакета». Является числом с плавающей точкой, с точностью до десятых. Например, 1.2, 1.5;
  • id: string — идентификатор пакета.

Количество дополнительных полей и параметров может отличаться в каждом проекте, так, например, в блоке attachments элемент может содержать свойство href: string – ссылка на файл хранящейся на сервере.

пример

{ 
"stringSize": 10000,
"binarySize": 8500,
"attachments": [
{
"size": 500
},
{
"size": 8000
}
],
"transaction": false,
"dataInfo": "user",
"id": ""
}

Строковый блок

– блок с данными в формате JSON. Состоит из объектов:

  • to: any – блок для передачи данных в формате RPC 
  • from: any – блок для получения данных в формате RPC. Может быть не указан. 

пример

{ 
"to": [{
"action": "users",
"method": "add",
"data": [{ id: 1, "login": "user1" }],
"type": "rpc",
"tid": 1
}],
"from": [{
"action": "users",
"method": "query",
"data": [{
filter: [{…}],
limit: 25
}],
"type": "rpc",
"tid": 1
}]
}

Бинарный блок

Финальный блок пакета. Может быть не указан. Предназначен для прикрепления бинарных данных. Информация храниться в бинарном формате. Файлы должны следовать друг за другом. 

пример

Print Friendly, PDF & Email

Добавить комментарий