process event onDeviceDeleted
This commit is contained in:
parent
33c6aeccff
commit
fa0e55f15b
@ -19,13 +19,12 @@ import io.netty.util.concurrent.Future;
|
||||
import io.netty.util.concurrent.GenericFutureListener;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.thingsboard.server.common.data.Device;
|
||||
import org.thingsboard.server.common.data.DeviceProfile;
|
||||
import org.thingsboard.server.common.data.ResourceType;
|
||||
import org.thingsboard.server.common.data.id.DeviceId;
|
||||
import org.thingsboard.server.common.transport.SessionMsgListener;
|
||||
import org.thingsboard.server.common.transport.TransportService;
|
||||
import org.thingsboard.server.common.transport.TransportServiceCallback;
|
||||
import org.thingsboard.server.gen.transport.TransportProtos;
|
||||
import org.thingsboard.server.gen.transport.TransportProtos.AttributeUpdateNotificationMsg;
|
||||
import org.thingsboard.server.gen.transport.TransportProtos.GetAttributeResponseMsg;
|
||||
@ -109,4 +108,14 @@ public class LwM2mSessionMsgListener implements GenericFutureListener<Future<? s
|
||||
this.handler.onResourceDelete(resourceDeleteMsgOpt);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDeviceDeleted(DeviceId deviceId) {
|
||||
log.trace("[{}] Device on delete", deviceId);
|
||||
try{
|
||||
this.handler.onDeviceDelete(deviceId);
|
||||
} catch (Exception e) {
|
||||
log.error("", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -46,6 +46,7 @@ import org.thingsboard.server.common.data.device.data.lwm2m.ObjectAttributes;
|
||||
import org.thingsboard.server.common.data.device.data.lwm2m.OtherConfiguration;
|
||||
import org.thingsboard.server.common.data.device.data.lwm2m.TelemetryMappingConfiguration;
|
||||
import org.thingsboard.server.common.data.device.profile.Lwm2mDeviceProfileTransportConfiguration;
|
||||
import org.thingsboard.server.common.data.id.DeviceId;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.common.data.ota.OtaPackageUtil;
|
||||
import org.thingsboard.server.common.transport.TransportService;
|
||||
@ -73,6 +74,8 @@ import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MCancelObser
|
||||
import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MCancelObserveRequest;
|
||||
import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MDiscoverCallback;
|
||||
import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MDiscoverRequest;
|
||||
import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MExecuteCallback;
|
||||
import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MExecuteRequest;
|
||||
import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MLatchCallback;
|
||||
import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MObserveCallback;
|
||||
import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MObserveRequest;
|
||||
@ -82,7 +85,6 @@ import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MWriteAttrib
|
||||
import org.thingsboard.server.transport.lwm2m.server.downlink.TbLwM2MWriteAttributesRequest;
|
||||
import org.thingsboard.server.transport.lwm2m.server.log.LwM2MTelemetryLogService;
|
||||
import org.thingsboard.server.transport.lwm2m.server.ota.LwM2MOtaUpdateService;
|
||||
import org.thingsboard.server.transport.lwm2m.server.rpc.LwM2MRpcRequestHandler;
|
||||
import org.thingsboard.server.transport.lwm2m.server.session.LwM2MSessionManager;
|
||||
import org.thingsboard.server.transport.lwm2m.server.store.TbLwM2MDtlsSessionStore;
|
||||
import org.thingsboard.server.transport.lwm2m.utils.LwM2mValueConverterImpl;
|
||||
@ -131,6 +133,8 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl
|
||||
|
||||
public LwM2mValueConverterImpl converter;
|
||||
|
||||
private static final String REBOOT_ID = "/3/0/4";
|
||||
|
||||
private final TransportService transportService;
|
||||
private final LwM2mTransportContext context;
|
||||
private final LwM2MAttributesService attributesService;
|
||||
@ -275,26 +279,30 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl
|
||||
public void unReg(Registration registration, Collection<Observation> observations) {
|
||||
executor.submit(() -> {
|
||||
LwM2mClient client = clientContext.getClientByEndpoint(registration.getEndpoint());
|
||||
try {
|
||||
logService.log(client, LOG_LWM2M_INFO + ": Client unRegistration");
|
||||
clientContext.unregister(client, registration);
|
||||
SessionInfoProto sessionInfo = client.getSession();
|
||||
if (sessionInfo != null) {
|
||||
sessionManager.deregister(sessionInfo);
|
||||
sessionStore.remove(registration.getEndpoint());
|
||||
log.info("Client close session: [{}] unReg [{}] name [{}] profile ", registration.getId(), registration.getEndpoint(), sessionInfo.getDeviceType());
|
||||
} else {
|
||||
log.error("Client close session: [{}] unReg [{}] name [{}] sessionInfo ", registration.getId(), registration.getEndpoint(), null);
|
||||
}
|
||||
} catch (LwM2MClientStateException stateException) {
|
||||
log.info("[{}] delete registration: [{}] {}.", registration.getEndpoint(), stateException.getState(), stateException.getMessage());
|
||||
} catch (Throwable t) {
|
||||
log.error("[{}] endpoint [{}] error Unable un registration.", registration.getEndpoint(), t);
|
||||
logService.log(client, LOG_LWM2M_ERROR + String.format(": Client Unable un Registration, %s", t.getMessage()));
|
||||
}
|
||||
logService.log(client, LOG_LWM2M_INFO + ": Client unRegistration");
|
||||
doUnReg(registration, client);
|
||||
});
|
||||
}
|
||||
|
||||
private void doUnReg(Registration registration, LwM2mClient client) {
|
||||
try {
|
||||
clientContext.unregister(client, registration);
|
||||
SessionInfoProto sessionInfo = client.getSession();
|
||||
if (sessionInfo != null) {
|
||||
sessionManager.deregister(sessionInfo);
|
||||
sessionStore.remove(registration.getEndpoint());
|
||||
log.info("Client close session: [{}] unReg [{}] name [{}] profile ", registration.getId(), registration.getEndpoint(), sessionInfo.getDeviceType());
|
||||
} else {
|
||||
log.error("Client close session: [{}] unReg [{}] name [{}] sessionInfo ", registration.getId(), registration.getEndpoint(), null);
|
||||
}
|
||||
} catch (LwM2MClientStateException stateException) {
|
||||
log.info("[{}] delete registration: [{}] {}.", registration.getEndpoint(), stateException.getState(), stateException.getMessage());
|
||||
} catch (Throwable t) {
|
||||
log.error("[{}] endpoint [{}] error Unable un registration.", registration.getEndpoint(), t);
|
||||
logService.log(client, LOG_LWM2M_ERROR + String.format(": Client Unable un Registration, %s", t.getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSleepingDev(Registration registration) {
|
||||
log.debug("[{}] [{}] Received endpoint sleeping event", registration.getId(), registration.getEndpoint());
|
||||
@ -390,6 +398,14 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDeviceDelete(DeviceId deviceId) {
|
||||
LwM2mClient client = clientContext.getClientByDeviceId(deviceId.getId());
|
||||
TbLwM2MExecuteRequest request = TbLwM2MExecuteRequest.builder().versionedId(REBOOT_ID).timeout(clientContext.getRequestTimeout(client)).build();
|
||||
defaultLwM2MDownlinkMsgHandler.sendExecuteRequest(client, request, new TbLwM2MExecuteCallback(logService, client, REBOOT_ID));
|
||||
doUnReg(client.getRegistration(), client);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResourceUpdate(TransportProtos.ResourceUpdateMsg resourceUpdateMsgOpt) {
|
||||
String idVer = resourceUpdateMsgOpt.getResourceKey();
|
||||
|
||||
@ -23,6 +23,7 @@ import org.eclipse.leshan.core.response.ReadResponse;
|
||||
import org.eclipse.leshan.server.registration.Registration;
|
||||
import org.thingsboard.server.common.data.Device;
|
||||
import org.thingsboard.server.common.data.DeviceProfile;
|
||||
import org.thingsboard.server.common.data.id.DeviceId;
|
||||
import org.thingsboard.server.gen.transport.TransportProtos;
|
||||
import org.thingsboard.server.transport.lwm2m.config.LwM2MTransportServerConfig;
|
||||
import org.thingsboard.server.transport.lwm2m.server.client.LwM2mClient;
|
||||
@ -48,6 +49,8 @@ public interface LwM2mUplinkMsgHandler {
|
||||
|
||||
void onDeviceUpdate(TransportProtos.SessionInfoProto sessionInfo, Device device, Optional<DeviceProfile> deviceProfileOpt);
|
||||
|
||||
void onDeviceDelete(DeviceId deviceId);
|
||||
|
||||
void onResourceUpdate(TransportProtos.ResourceUpdateMsg resourceUpdateMsgOpt);
|
||||
|
||||
void onResourceDelete(TransportProtos.ResourceDeleteMsg resourceDeleteMsgOpt);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user