Сервис оповещений о событиях

WebSocket-интерфейс, реализованный в Viinex, позволяет встраивающему приложению подписаться на события (например, приходящие от детекторов IP-камер, систем встроенной аналитики или аналитики интегрированной через внешний процесс, такие как распознавание номеров автомобилей, вагонов или контейнеров; события, приходящие по Modbus TCP и т.д.) и использовать их в различных сценариях для построения внутренней логики работы интегрирующего приложения при управлении записью видео или для построения более сложной логики с помощью скриптов.

Клиентскому приложению достаточно подключиться к серверу, авторизоваться и подписаться на интересующие события, после чего можно получать эти события в реальном времени через WebSocket, т.е. сервер транслирует события всем клиентам, подписавшимся на события интересующего их объекта, как только они приходят от объектов-источников событий в Viinex.

Пример WebSocket подписки на события

Получать все события со всех объектов:

["subscribe", {}]

Получать все события камер 1 и камера 2 (которые могут быть ONVIF-камерами или raw-видеоисточниками):

["subscribe", {"origins": ["cam1","cam2"]}]

Получать события от детектора движения и детектора изменения сцены, работающего на «камере 1»:

["subscribe", {"origins": ["cam1"],
              "topics": ["MotionAlarm", "GlobalSceneChange"]}]

Каждое такое событие передается в отдельном фрейме WebSocket, содержащем запись JSON:

{
"timestamp": TIMESTAMP,
"origin": {
"name": STRING, "type": STRING, ...
}
  • Timestamp содержит время, когда появилось событие;
  • Origin – это источник события, т.е. объект, содержащий имя (name), идентифицирующее объект, который вызвал это событие, а также тип (type) источника этого события;

Может быть несколько дополнительных значений в зависимости от типа источника (например, в случае событий ONVIF устройство может сообщать идентификатор конкретного видеодетектора или правила, которое вызвало предупреждение).