Как получить обновленный контент на наблюдаемом ресурсе в Лешане?

В настоящее время я работаю над доказательством концепции использования Leshan для регулярного получения сообщений журнала с устройств. Мы обнаружили, что запрос наблюдения — лучший способ использовать этот подход. Итак, временно, поскольку у нас еще нет пользовательского объекта (клиент 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()). Это правильное место для получения обновлений? Я пытаюсь выяснить, где в базе кода находится правильное место для получения обновленного контента? Ваша помощь будет высоко оценена.

Спасибо


person user1860447    schedule 22.10.2015    source источник


Ответы (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) {}

});
person user1860447    schedule 26.10.2015