Типы

Событие

Для передачи и хранения информации о возникающих в системе событиях определен следущий формат:
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}`,
);