Websockets API

Точка входа

Для подключения к Websockets API вам понадобится токен (access_token), который вы можете получить с помощью API авторизации. Токен вставляется в тело запроса в большинстве команд и обеспечивает вашу авторизацию на Платформе.

Точка входа в Websockets API на основном рабочем окружении:

wss://cdb.neurop.org/npe/engine

Общий принцип работы API

Логика работы этого API основана на понятии модели.

С точки зрения Websockets API, модель — это некий обособленный контейнер, выделенный для вычислений по заданному пользователю с заданным алгоритмом расчёта.

Алгоритмы расчёта задаются в формате XML, который описан в разделе API вычислительных моделей. Но в большинстве случаев, вам не нужен какой-то особый настраиваемый алгоритм, достаточно воспользоваться одной из существующих моделей.

Websockets API принимает два типа пакетов:

  1. Команды — пакеты, которые управляют подключением,
  2. Данные — пакеты, которые содержат данные для обработки.

Общий алгоритм работы с Websockets API выглядит следующим образом:

  1. Запустить нужную модель с помощью команды start,
  2. Если необходимо получать результаты вычислений, подписаться на нужные индикаторы с помощью команды subscribe,
  3. Если какие-то индикаторы больше не нужны, отписаться от них командой unsubscribe,
  4. Если нужно отправить в вычислитель данные, то формировать пакеты данных в установленном формате,
  5. Если данных долго нет с обеих сторон, отправить команду echo, чтобы сохранить установленное соединение,
  6. Если произошел разрыв соединения, подключиться к запущенной модели с помощью команды start, выполненной с теми же параметрами,
  7. Завершить соединение.

API не включает команду stop (остановка модели), так как модель автоматически закрывается через 10 минут после потери подключения.

Список доступных команд включает:

Название командыНазначение команды
startЗапуск новой модели или переподключение к существующей
subscribeПодписка на события заданного типа
unsubscribeОтписка от событий заданного типа
echoОтправка пустого сообщения (как правило, для сохранения связи с сервером)

Обмен данными происходит в формате JSON. Например, самая простая команда echo выглядит так.

Запрос:

{
  "Command": {
    "CommandType": "echo",
    "Args": {
       "json":"test"
    }
  }
}

Ответ:

{
  "Response": {
    "Command": {
      "CommandType": "echo",
      "CommandId": "",
      "Args": {
        "json": "test"
      }
    },
    "Status": 0,
    "ErrorCode": "NPE001"
  }
}

Поле «ErrorCode» (код ошибки) приходит для любых запросов, даже в случае успеха. В данном случае, код NPE001 означает успешное выполнение команды.

Подробнее о кодах ошибок можно узнать на странице Коды ошибок Websockets API.