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