mirror of
https://github.com/signalapp/Signal-Server
synced 2026-04-20 13:07:58 +01:00
Revert keyspace delivery for all messages
* Revert "Send all messages via keyspace notifications when a feature flag is enabled." This reverts commitfadcf62166. * Revert "Consolidate semaphore release logic." This reverts commitc02b255766. * Revert "Represent stored message state as an enumeration rather than a collection of booleans." This reverts commit89788fa665. * Revert "Refactor: collapse state into semaphores/atomic booleans." This reverts commita052e2ee8f. * Revert "Refactor: move sendNextMessagePage into its own method." This reverts commit158e5004b7. * Revert "Avoid querying the database if we think all new messages are in the cache." This reverts commit6f9ff3be37. * Revert "Query for more stored messages if an update happens while we're already processing a batch." This reverts commitf766c57743. * Revert "Only send the "queue cleared" message once per websocket session." This reverts commit8f53152c3e. * Revert "Let processStoredMessages handle requery logic." This reverts commit7bbc88d716. * Revert "Only allow one thread to process stored messages at a time." This reverts commit68256d2343.
This commit is contained in:
@@ -69,43 +69,21 @@ public class WebsocketSender {
|
||||
private final MessagesManager messagesManager;
|
||||
private final PubSubManager pubSubManager;
|
||||
private final ClientPresenceManager clientPresenceManager;
|
||||
private final FeatureFlagsManager featureFlagsManager;
|
||||
|
||||
private static final String KEYSPACE_DELIVERY_FEATURE_FLAG = "keyspace-delivery-for-all-messages";
|
||||
|
||||
public WebsocketSender(MessagesManager messagesManager, PubSubManager pubSubManager, ClientPresenceManager clientPresenceManager, final FeatureFlagsManager featureFlagsManager) {
|
||||
public WebsocketSender(MessagesManager messagesManager, PubSubManager pubSubManager, ClientPresenceManager clientPresenceManager) {
|
||||
this.messagesManager = messagesManager;
|
||||
this.pubSubManager = pubSubManager;
|
||||
this.clientPresenceManager = clientPresenceManager;
|
||||
this.featureFlagsManager = featureFlagsManager;
|
||||
}
|
||||
|
||||
public boolean sendMessage(Account account, Device device, Envelope message, Type channel, boolean online) {
|
||||
final boolean clientPresent = clientPresenceManager.isPresent(account.getUuid(), device.getId());
|
||||
|
||||
if (online) {
|
||||
if (clientPresent) {
|
||||
if (clientPresenceManager.isPresent(account.getUuid(), device.getId())) {
|
||||
ephemeralOnlineCounter.increment();
|
||||
messagesManager.insertEphemeral(account.getUuid(), device.getId(), message);
|
||||
return true;
|
||||
} else {
|
||||
ephemeralOfflineCounter.increment();
|
||||
return false;
|
||||
}
|
||||
} else if (featureFlagsManager.isFeatureFlagActive(KEYSPACE_DELIVERY_FEATURE_FLAG)) {
|
||||
messagesManager.insert(account.getUuid(), device.getId(), message);
|
||||
|
||||
if (clientPresent) {
|
||||
if (channel == Type.APN) apnOnlineMeter.mark();
|
||||
else if (channel == Type.GCM) gcmOnlineMeter.mark();
|
||||
else websocketOnlineMeter.mark();
|
||||
|
||||
return true;
|
||||
} else {
|
||||
if (channel == Type.APN) apnOfflineMeter.mark();
|
||||
else if (channel == Type.GCM) gcmOfflineMeter.mark();
|
||||
else websocketOfflineMeter.mark();
|
||||
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
@@ -117,7 +95,7 @@ public class WebsocketSender {
|
||||
|
||||
pubSubManager.publish(address, pubSubMessage);
|
||||
|
||||
if (clientPresent) {
|
||||
if (clientPresenceManager.isPresent(account.getUuid(), device.getId())) {
|
||||
if (channel == Type.APN) apnOnlineMeter.mark();
|
||||
else if (channel == Type.GCM) gcmOnlineMeter.mark();
|
||||
else websocketOnlineMeter.mark();
|
||||
|
||||
Reference in New Issue
Block a user