Do not update ws lastActivity in case of general response - only on pong response. Clean up properly subscription map in case canceling subsription

This commit is contained in:
Volodymyr Babak 2022-01-05 16:50:48 +02:00
parent fe38da0b34
commit 7589330406
2 changed files with 6 additions and 1 deletions

View File

@ -290,7 +290,6 @@ public class TbWebSocketHandler extends TextWebSocketHandler implements Telemetr
log.trace("[{}] Failed to send msg", session.getId(), result.getException());
closeSession(CloseStatus.SESSION_NOT_RELIABLE);
} else {
lastActivityTime = System.currentTimeMillis();
String msg = msgQueue.poll();
if (msg != null) {
sendMsgInternal(msg);

View File

@ -499,6 +499,12 @@ public class DefaultTbEntityDataSubscriptionService implements TbEntityDataSubsc
if (ctx != null) {
ctx.cancelTasks();
ctx.clearSubscriptions();
if (ctx.getSessionId() != null) {
Map<Integer, TbAbstractSubCtx> sessionSubs = subscriptionsBySessionId.get(ctx.getSessionId());
if (sessionSubs != null) {
sessionSubs.remove(ctx.getCmdId());
}
}
}
}