首页 文章

如何在乐山的Observed资源上检索更新的内容?

提问于
浏览
0

目前,我正致力于使用乐山定期接收来自设备的日志消息的概念证明 . 我们发现Observe请求是采用这种方法的最佳方法 . 所以暂时,因为我们还没有自定义对象(Wakama客户端还没有准备好),在客户端注册的服务器端,我在LeshanClientExample的Device上观察资源15 . 这是LeshanServer.java中的Observe代码:

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 回答

  • 1

    正如另一篇博文中的建议 . 有两种方法可以通知观察 .

    // 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) {}
    
    });
    

相关问题