События
Событие
Для передачи и хранения информации о возникающих в системе событиях определен следущий формат:
TypeScript
import type { ItemId } from "@rightech/api"; export interface Event<T = unknown> { _msgid: string; // уникальный идентификатор события _oid?: ItemId; // идентификатор объекта, с которым связано событие event: string; // тип события time: number; // временная метка data: T; // данные события, зависит от типа}Пример события object-packet (Получение пакета от устройства):
JSON
{ "_msgid": "mXuA6Npq9yFOl7wK65pi1P", "_oid": "66a8bb42221d1a6b2d1d1ce8", "event": "object-packet", "time": 1722338333564, "data": { "_ts": 1722338333562289, "topic": "test", "payload": "42" }}Получать события проекта в режиме онлайн можно по адресу по протоколу WebSocket:
wss://dev.rightech.io/events/stream
Для доступа к эндпоинту необходимо также передать токен, полученный на этапе аутентификации
JavaScript
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:
JavaScript
const ws = new WebSocket(`wss://${token}@dev.rightech.io/events/stream`);или
JavaScript
const ws = new WebSocket( `wss://dev.rightech.io/events/stream?accessToken=${token}`,);