Как мне удалить подписанный элемент в Eclipse Milo 0.3.8? - PullRequest
0 голосов
/ 25 марта 2020

Я посмотрел примеры для подписки на NodeId и мне интересно, как я мог бы остановить / удалить подписку после этого.

Клиент Eclipse Milo v0.3.8.

Вот что я ' мы пробовали

  protected boolean unsubscribe(TransactionDefinition transactionDefinition) {

// Finds the mathing TransactionDefinition from the map where all subscriptions 
// are stored, together with the clientHandle. 
// private Map<UInteger, TransactionDefinition> subscriptions = new HashMap<>();
try {
  UInteger subscriptionClientHandle = null;
  for (Map.Entry<UInteger, TransactionDefinition> entry : subscriptions.entrySet()) {
    if (entry.getValue().equals(transactionDefinition))
      subscriptionClientHandle = entry.getKey();
  }
  if (subscriptionClientHandle == null) return false;

  try {
    client.getSubscriptionManager().deleteSubscription(subscriptionClientHandle).get();
    return true;
  } catch (Exception e) {
    log.error("Subscription not found: {}", e.getMessage(), e.getCause());
    e.printStackTrace();
  }

} catch (ClassCastException e) {
  log.error("TransactionDefinition trigger not found. {}", e.getMessage(), e.getCause());
  e.printStackTrace();
}
return false;

}

1 Ответ

1 голос
/ 26 марта 2020

UaSubscription имеет метод deleteMonitoredItems.

UaSubscriptionManager имеет метод deleteSubscription.

Вы также можете вызвать любую из этих служб "вручную" вызывая «необработанные» методы обслуживания для экземпляра UaClient.

...