registerConsumer
[ Funktion ]
public static registerConsumer(
filter: Filter | null,
callbacks: {
list?: (data: Events.ListResult) => void,
subscription?: (data: Events.SubscriptionResult) => void
}): DestroyFunction | null;
Meldet einen Verbraucher für Server Events an. Ein Verbraucher kann zwei optionale Funktionen angeben: list
wird aufgerufen, nachdem der Verbraucher angemeldet wurde oder wenn sich die Lokalisierung ändert, subscription
wird aufgerufen, wenn sich Alarme ändern oder neue Events erzeugt werden.
Nur Events die auf den angegebenen Filter passen, werden an den Verbraucher weitergeleitet. Falls nicht gefiltert werden soll, muss null übergeben werden.
Parameter
Name | Typ | Beschreibung |
---|---|---|
filter | Definiert, welche Events abgefragt werden sollen | |
callbacks | { list?: (data: Events.ListResult) => void, subscription?: (data: Events.SubscriptionResult) => void } | Ein object, welches die Callback Funktionen, an die empfangene Events übergeben werden, enthält. |
Rückgabewert
Typ | Beschreibung |
---|---|
Eine Funktion, mit der der Verbraucher wieder abgemeldet werden kann. Falls das Anmelden des Verbrauchers fehlschlägt wird null zurückgegeben. |
Beispiel – JavaScript
// filter for unconfirmed alarms
var filter = [
{
path: 'type',
comparator: '==',
value: TcHmi.Server.Events.Type.Alarm
},
{
logic: 'AND'
},
{
path: 'timeConfirmed',
comparator: '==',
value: new Date(null)
}
];
var myAlarms = [];
// function to handle list of events
function consumeEventList(data) {
if (data.error === TcHmi.Errors.NONE) {
myAlarms = data.events;
}
else {
myAlarms = [];
}
}
// function to handle new and changed incoming events
function consumeEventSubscription(data) {
if (data.error !== TcHmi.Errors.NONE) {
return;
}
if (data.removedByFilter) {
myAlarms = myAlarms.filter(function (alarm) {
return alarm.id !== data.event.id;
});
}
else if (data.changeType === TcHmi.Server.Events.ChangeType.AlarmRaised) {
myAlarms.push(data.event);
}
else {
for (var i = 0; i < myAlarms.length; i++) {
if (myAlarms[i].id === data.event.id) {
myAlarms[i] = data.event;
break;
}
}
}
}
// register a consumer to receive events
var destroyFunction = TcHmi.Server.Events.registerConsumer(filter, {
list: consumeEventList,
subscription: consumeEventSubscription
});
![]() | Verfügbar ab Version 1.10 |