RU

Типы

Событие

Для передачи и хранения информации о возникающих в системе событиях определен следущий формат:

import type { ItemId } from "@rightech/api";
 
export interface Event<T = unknown> {
  _msgid: string; // уникальный идентификатор события
  _oid?: ItemId; // идентификатор объекта, с которым связано событие
 
  event: string; // тип события
  time: number; // временная метка
  data: T; // данные события, зависит от типа
}

Пример события object-packet (Получение пакета от устройства):

{
  "_msgid": "mXuA6Npq9yFOl7wK65pi1P",
  "_oid": "66a8bb42221d1a6b2d1d1ce8",
  "event": "object-packet",
  "time": 1722338333564,
  "data": {
    "_ts": 1722338333562289,
    "topic": "test",
    "payload": "42"
  }
}

Подключение

Получать события проекта в режиме онлайн можно по адресу по протоколу WebSocket:

  • wss://dev.rightech.io/events/stream

Для доступа к эндпоинту необходимо также передать токен, полученный на этапе аутентификации

const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9....";
 
const ws = new WebSocket(`wss://dev.rightech.io/events/stream`, {
  headers: {
    Authorization: `Bearer ${token}`,
  },
});
 
ws.on("message", (message) => {
  console.log(message);
});

В случае если библиотека WebSocket не позволяет задавать дополнительные заголовки при подключении - токен доступа можно передать через URL:

const ws = new WebSocket(`wss://${token}@dev.rightech.io/events/stream`);

или

const ws = new WebSocket(
  `wss://dev.rightech.io/events/stream?accessToken=${token}`,
);