diff --git a/broker/src/main/java/io/moquette/imhandler/UploadDeviceTokenHandler.java b/broker/src/main/java/io/moquette/imhandler/UploadDeviceTokenHandler.java index 2d89c2b3..cd681911 100644 --- a/broker/src/main/java/io/moquette/imhandler/UploadDeviceTokenHandler.java +++ b/broker/src/main/java/io/moquette/imhandler/UploadDeviceTokenHandler.java @@ -31,7 +31,7 @@ public class UploadDeviceTokenHandler extends IMHandler> it = sessions.entrySet().iterator(); while (it.hasNext()) { Session session = it.next().getValue(); - if (!session.getClientID().equals(cid) && (session.pushType == pushType && token.equals(session.deviceToken))) { + if (!session.getClientID().equals(cid) && (session.pushType == pushType && token.equals(session.deviceToken)) && (!StringUtil.isNullOrEmpty(packageName) && packageName.equals(session.getAppName()))) { session.deviceToken = null; } } diff --git a/broker/src/main/java/io/moquette/spi/ISessionsStore.java b/broker/src/main/java/io/moquette/spi/ISessionsStore.java index 9f3a6697..eca5ae83 100755 --- a/broker/src/main/java/io/moquette/spi/ISessionsStore.java +++ b/broker/src/main/java/io/moquette/spi/ISessionsStore.java @@ -46,7 +46,7 @@ public interface ISessionsStore { Session getSession(String clientID); - void cleanDuplatedToken(String cid, int pushType, String token, boolean isVoip); + void cleanDuplatedToken(String cid, int pushType, String token, boolean isVoip, String packageName); void updateSessionToken(Session session, boolean voip);