Как получить обновленный контент на ресурсе Observed в Leshan?

В настоящее время я работаю над проверкой концепции, используя Leshan для регулярного получения сообщений журнала от устройств. Мы обнаружили, что запрос Observe является наилучшим способом реализации этого подхода. Поэтому временно, поскольку у нас пока нет пользовательского объекта (клиент Wakama еще не готов), на стороне сервера, когда клиент регистрируется, я наблюдаю ресурс 15 на устройстве в LeshanClientExample. Вот код наблюдения в LeshanServer.java:

 this.clientRegistry.addListener(new ClientRegistryListener() {
    ....
    @Override
     public void registered(final Client client) {
        // TODO observe the client when it is registered.
        observeResource(client);
      }
      ....

private void observeResource(final Client client){
    ObserveRequest request = new ObserveRequest("/3/0/15");
    LwM2mResponse cResponse = this.send(client, request);
}

Далее я хочу фиксировать изменения каждый раз, когда происходит изменение ресурса, и записывать их в базу данных. Я вижу это в

 org.eclipse.leshan.client.californium.impl.ObjectResource 

Я получаю контент, который был обновлен (в handleGET()). Это правильное место для получения обновлений? Я пытаюсь выяснить, где в базе кода находится правильное место для получения обновленного контента? Ваша помощь будет высоко оценена.

Спасибо

1 ответ

Решение

Как предлагается в другом сообщении в блоге. Есть 2 способа получить уведомление о наблюдении.

// listen all observation via the ObservationRegistry
server.getObservationRegistry().addListener(new ObservationRegistryListener() {
 @Override
 public void newValue(Observation observation, LwM2mNode value) {}

@Override
public void cancelled(Observation observation) {}

@Override
public void newObservation(Observation observation) {}

});


// listen a particular observe request (recently added in master)
ObserveRequest request = new ObserveRequest("/3/0/13");
ObserveResponse response = server.send(client, request, TIMEOUT);
response.getObservation().addListener(new ObservationListener() {
@Override
public void newValue(Observation observation, LwM2mNode value) {}

@Override
public void cancelled(Observation observation) {}

});
Другие вопросы по тегам