/Methods/PublishEvents

<< Click to Display Table of Contents >>

Navigation:  API MasterSCADA 4D > Подключение к исполнительной системе по JSON > JSON для HTTP-запросов > Описание JSON-запросов > Сообщения >

/Methods/PublishEvents

PublishEvents - запрос на получение оповещений по подписке. Если новых уведомлений нет, то поля recs/deleted не передаются. Также не передается поле sequenceNumber (в следующем запросе нужно указать предыдущее значение ackSequenceNumber).

Данные запроса

{"sessionId":<ID сессии>,

"subscriptionId":<ID подписки>,

"ackSequenceNumber":1 - последний полученный клиентом номер пакета по данной подписке. Для первого запроса не указывается

}

Данные ответа

{"subscriptionId":<ID созданной подписки>,

"sequenceNumber":<текущий номер пакета>, - сервер отправляет пакет с номером, следующим после ackSequenceNumber (если он уже удален из очереди передачи, то отправляется первый из очереди)

"hasMore":true - не все уведомления переданы, можно повторить запрос

"serverTime":<текущее время сервера>,

"recs":[ - массив уведомлений:

{"clientHandle":1 - ID выборки, заданный клиентом

"recType": - тип записи, возможные варианты:

Update - обычное уведомление о новом сообщении или об изменении существующего

Refresh - уведомление в ответ на вызов RefreshEvents

UpdateArchive - вызывается при изменении старого сообщения. Текущий журнал на них реагировать не должен, так как это сообщение в нем уже было замещено новым

"fields":[ ] - массив значений полей выборки. Значения идут в том порядке, как было задано при подписке, тип значения соответствует типу поля. Могут быть null-значения, если для какого-то сообщения не определено некоторое поле в выборке

}]

"deleted":[ - массив сообщений, которые ранее удовлетворяли фильтру по данной подписке, но теперь ему не удовлетворяют (они должны быть удалены из отображаемого на клиенте списка), сообщения группируются по выборкам (clientHandle).

{"clientHandle":1, - ID выборки, заданный клиентом

"eventIds":[""] - массив EventId удаленных сообщений

}]

}

Пример

Запрос

{"sessionId":"1234","subscriptionId":1,"ackSequenceNumber":0

}

Ответ

{"subscriptionId":1,

"sequenceNumber":1,

"hasMore":true,

"serverTime": "1411149604245",

"recs":[

{"clientHandle":1, "recType":"Update", "fields":[

"12A5EDFFFFFF", "1357002062000", "Превышение уставки", 100.0, false ]}

{"clientHandle":1, "recType":"Update", "fields":[

"13A5EDABABAB", "1357002062000", "Авария насоса", 950.0, false ]}

],

"deleted" : [  { "clientHandle":1, "eventIds":["7623423AA"] } ]

}