Kaiten

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

To Kaiten

Работа по вебсокетам

Подключение

url: https://dev.rightech.io/events/stream

Доступные протоколы:

  • WebSocket - предпочтительно

  • SSE - Server-sent events

  • HTTP

Авторизация: как в api, через Authorization: Bearer {token} (как издать токен можно прочитать тут)

Простой пример на js: https://github.com/prohazko2/odoo-pacs/blob/main/src/pacs.js#L51

Формат

https://github.com/Rightech/rest-api/blob/master/types/events.d.ts#L16

полезные поля:

  • time - время возникновения, unix в миллисекундах

  • event - тип события

  • data - доп. данные, формат различается для каждого типа

  • _oid - id объекта, с котороым связано событие

object-packet - получение пакета от объекта

{ "_msgid": "unhivx4ZwQraTY4v1l-kTo", "_oid": "63213d49e9c81b001180a755", "time": 1664803947450, "event": "object-packet", "data": { "_ts": 1664803947447731, "payload": "9", "temperature": 9, "time": 1664803947447, "topic": "base/state/temperature" }}

object-update - изменение любого поля объекта

формат для data.diffs : https://jsonpatch.com/

{ "_msgid": "G61yvQYVNLlJGGuM6AixX", "_oid": "63213d49e9c81b001180a755", "time": 1664804066201, "event": "object-update", "data": { "diffs": [ { "op": "replace", "path": "/description", "value": "test-02" } ] }}

Вызов произвольного события из автомата

Untitled

{ "_msgid": "lQF2ngayOavh9LWZL2HgA", "_oid": "63213d49e9c81b001180a755", "service": "ric-logic-v3.rightech", "time": 1664803762499, "event": "test-event-01", "data": { "hello": "world" }}