Kaiten

[PMO] База знаний функциональности (интернет)

To Kaiten

События

Событие

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

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}`,);