如何获取乐山Observed资源的更新内容?
How to retrieve updated content on an Observed resource in Leshan?
目前我正在使用 Leshan 定期接收来自设备的日志消息进行概念验证。我们发现观察请求是采用这种方法的最佳方式。
所以暂时,由于我们还没有自定义对象(Wakama 客户端尚未准备好),在客户端注册时,在服务器端,我在 LeshanClientExample 中观察到 Device 上的资源 15。
这是 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() 中)。这是从中检索更新的正确位置吗?
我试图找出代码库中的哪个位置是检索更新内容的正确位置?
非常感谢您的帮助。
谢谢
正如另一个博客 post 所建议的那样。
有两种方式可以通知观察。
// 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) {}
});
目前我正在使用 Leshan 定期接收来自设备的日志消息进行概念验证。我们发现观察请求是采用这种方法的最佳方式。 所以暂时,由于我们还没有自定义对象(Wakama 客户端尚未准备好),在客户端注册时,在服务器端,我在 LeshanClientExample 中观察到 Device 上的资源 15。 这是 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() 中)。这是从中检索更新的正确位置吗? 我试图找出代码库中的哪个位置是检索更新内容的正确位置? 非常感谢您的帮助。
谢谢
正如另一个博客 post 所建议的那样。 有两种方式可以通知观察。
// 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) {}
});