Сервис оповещений о событиях
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 устройство может сообщать идентификатор конкретного видеодетектора или правила, которое вызвало предупреждение).