目前,我正在进行概念证明,使用乐山定期接收来自设备的日志消息。我们发现,观察请求是采用这种方法的最佳方法。因此,暂时,由于我们还没有自定义对象(Wakama客户机尚未准备好),在服务器端,当客户机注册时,我在LeshanClientExample中的设备上观察到资源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()中)。这是检索更新的正确位置吗?我试图找出在代码库中哪里是检索更新内容的正确位置?您的帮助将不胜感激。
谢谢
发布于 2015-10-26 21:39:37
正如另一篇博客文章所建议的那样。有两种方法可以被告知观察。
// 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) {}
});https://stackoverflow.com/questions/33292137
复制相似问题