清除重复devicetoken时对包名进行判断,如果不同包名的client不清除重复推送token

This commit is contained in:
heavyrain.lee
2019-12-28 18:18:40 +08:00
parent 1d987c1569
commit 9d1031594e
3 changed files with 4 additions and 4 deletions
@@ -31,7 +31,7 @@ public class UploadDeviceTokenHandler extends IMHandler<WFCMessage.UploadDeviceT
session.setDeviceToken(request.getDeviceToken());
session.setPushType(request.getPushType());
m_sessionsStore.updateSessionToken(session, false);
m_sessionsStore.cleanDuplatedToken(session.getClientID(), session.getPushType(), session.getDeviceToken(), false);
m_sessionsStore.cleanDuplatedToken(session.getClientID(), session.getPushType(), session.getDeviceToken(), false, session.getAppName());
}
return ErrorCode.ERROR_CODE_SUCCESS;
@@ -285,7 +285,7 @@ public class MemorySessionStore implements ISessionsStore {
}
@Override
public void cleanDuplatedToken(String cid, int pushType, String token, boolean isVoip) {
public void cleanDuplatedToken(String cid, int pushType, String token, boolean isVoip, String packageName) {
if (StringUtil.isNullOrEmpty(token) || isVoip) {
return;
}
@@ -293,7 +293,7 @@ public class MemorySessionStore implements ISessionsStore {
Iterator<Map.Entry<String, Session>> 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;
}
}
@@ -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);