Hi Marc
Thanks for the input. This is actually something that needed improvement! The re-registration is done by the ObserveLayer.
It used a new request that was not linked to the initial request through the CoapClient. Hence, there is no onError() call on the handler passed to the client.
I fixed this now by copying the MessageObservers from the initial request to the re-registration request. This means
that the same callbacks will be called. This should help with your issue.
However, this opened up a new issue: the notification orderer. If the server rebooted, it will start with a new sequence
number in the observe option. Since the numbers are lower than the one last seen by the orderer, the actually new notifications will be filtered. A fix for this will take some more time, since the ObserveLayer currently has no access to the orderer.
Ciao
Matthias
From: cf-dev-bounces@xxxxxxxxxxx [mailto:cf-dev-bounces@xxxxxxxxxxx]
On Behalf Of Marc
Sent: Mittwoch, 19. November 2014 06:18
To: cf-dev@xxxxxxxxxxx
Subject: [cf-dev] Californium usage question
Hello everybody, I'm beggining to test californium with a couple of sensors and a border-router and so far everything is working pretty well.
I've developed a simple client that subscribes to observable variables from this two sensors, I'm getting data with no problem.
I would like to react when one of the sensors is shut down, right now I can see that after powering off a sensor and some time passes, I get the following message:
org.eclipse.californium.core.network.stack.ReliabilityLayer$RetransmissionTask run
INFO: Timeout: retransmission limit reached, exchange failed, message: CON-GET MID=52434, Token=c22cc853, OptionSet={"Observe":0, "Uri-Path":["test","push"]},
no payload
Can I implement a callback to handle this event? it looks like the CoapHandler object onError doesn't receive this events.
thank's