Ehren Kret
604287244f
Update copyright statement on all source files
...
IntelliJ Copyright Profile used to automate this.
2020-11-04 11:55:35 -05:00
Jon Chambers
05d9ec673e
Send push notifications if websockets close before all messages are delivered
2020-10-27 16:02:55 -04:00
Jon Chambers
96d3a69479
Use container-managed executors for APN/GCM senders.
2020-10-23 11:30:03 -04:00
Jon Chambers
0a843dc086
Tighten the "prune peers" interval; move from fixed-rate to fixed-delay scheduling.
2020-10-20 19:00:55 -04:00
Jon Chambers
7b3ed2dcbf
Catch exceptions thrown while pruning missing peers.
2020-10-20 19:00:55 -04:00
Jon Chambers
42ed6c3ded
Add clients to the "cleanup" list before actually setting their presence keys.
2020-10-20 19:00:55 -04:00
Jon Chambers
05929871c9
Rename PushSender to MessageSender and add docs.
2020-10-19 11:24:35 -04:00
Jon Chambers
74b3daa70a
Collapse WebsocketSender into PushSender.
2020-10-19 11:24:35 -04:00
Jon Chambers
5e30b0499a
Move provisioning message-sending to its own manager class.
2020-10-19 11:24:35 -04:00
Jon Chambers
a7266364d1
Refactor peer pruning to be more retry-friendly.
2020-10-01 17:17:07 -04:00
Jon Chambers
17d18b22c7
Drop pub/sub sending logic from WebsocketSender.
2020-09-23 14:51:02 -04:00
Jon Chambers
7e14a0bc30
Drop pub/sub operations from WebsocketConnection.
2020-09-23 14:51:02 -04:00
Jon Chambers
62c31eb202
Revert "Revert keyspace delivery for all messages"
...
This reverts commit 4dc49604b6 .
2020-09-22 10:21:33 -04:00
Jon Chambers
4dc49604b6
Revert keyspace delivery for all messages
...
* Revert "Send all messages via keyspace notifications when a feature flag is enabled."
This reverts commit fadcf62166 .
* Revert "Consolidate semaphore release logic."
This reverts commit c02b255766 .
* Revert "Represent stored message state as an enumeration rather than a collection of booleans."
This reverts commit 89788fa665 .
* Revert "Refactor: collapse state into semaphores/atomic booleans."
This reverts commit a052e2ee8f .
* Revert "Refactor: move sendNextMessagePage into its own method."
This reverts commit 158e5004b7 .
* Revert "Avoid querying the database if we think all new messages are in the cache."
This reverts commit 6f9ff3be37 .
* Revert "Query for more stored messages if an update happens while we're already processing a batch."
This reverts commit f766c57743 .
* Revert "Only send the "queue cleared" message once per websocket session."
This reverts commit 8f53152c3e .
* Revert "Let processStoredMessages handle requery logic."
This reverts commit 7bbc88d716 .
* Revert "Only allow one thread to process stored messages at a time."
This reverts commit 68256d2343 .
2020-09-14 15:35:10 -04:00
Jon Chambers
fadcf62166
Send all messages via keyspace notifications when a feature flag is enabled.
2020-09-11 13:12:17 -04:00
Jon Chambers
cfa56ba6d4
Remove the "send online messages via keyspace notifications" feature flag.
2020-09-10 10:41:20 -04:00
Jon Chambers
5e34823a49
Optionally send online-only messages via keyspace notifications.
2020-09-09 14:42:09 -04:00
Jon Chambers
8927e45ded
Revert "Optionally send online-only messages via keyspace notifications."
...
This reverts commit 12fe28d8ab .
2020-09-08 15:55:09 -04:00
Jon Chambers
1a93df92d4
Replace DeliveryStatus with a simple boolean.
2020-09-08 11:29:33 -04:00
Jon Chambers
12fe28d8ab
Optionally send online-only messages via keyspace notifications.
2020-09-08 11:19:55 -04:00
Jon Chambers
1d5087374e
Jettison UUID-or-E164 plumbing in favor of UUID-only.
2020-09-08 09:30:47 -04:00
Jon Chambers
5c04f2634a
Use a dedicated executor service for dispatching keyspace notifications.
2020-09-03 11:04:48 -04:00
Jon Chambers
ad01610d1e
Rely on the client presence manager to decide whether to send push notifications.
2020-09-03 11:04:48 -04:00
Jon Chambers
dc28d063aa
Reactivate the explicit client presence experiment.
2020-08-17 11:34:27 -04:00
Jon Chambers
bb6045c1d0
Disarm the client presence manager experiment.
2020-08-15 20:23:05 -04:00
Jon Chambers
6fb9038af1
Move to a synchronous, pooled connection model for Redis clusters.
2020-08-14 17:15:56 -04:00
Jon Chambers
5717dc294e
Combine the read/write breakers for Redis clusters.
2020-08-14 17:15:56 -04:00
Jon Chambers
ae0f8df11b
Break out FaultTolerantPubSubConnection as its own thing so different use cases can have their own subscription space.
2020-08-14 17:15:56 -04:00
Jon Chambers
77460ba502
Remove keyspace notification configuration checks because AWS doesn't support CONFIG GET.
2020-08-13 15:32:25 -04:00
Jon Chambers
8d3316ccd6
Listen for new messages via keyspace notifications.
2020-08-13 12:17:04 -04:00
Jon Chambers
2c29f831e8
Add an explicit client presence system.
2020-08-13 10:56:26 -04:00
Jon Chambers
f3b644ceb8
Update the push latency manager to use UUIDs and a Redis cluster.
2020-08-03 15:36:02 -04:00
Jon Chambers
901ba6e87f
Added a push latency manager.
2020-08-03 15:36:02 -04:00
Jon Chambers
f9f93c77e2
Use UUIDs instead of phone numbers as account identifiers in clustered message cache
2020-07-30 11:39:14 -04:00
Jon Chambers
116ab83b95
Include a PushType header when sending APNs notifications.
2020-07-09 16:12:20 -04:00
Jon Chambers
c17cc07b73
Instrument BlockingThreadPoolExecutor.
2020-06-12 14:43:50 -04:00
Jon Chambers
ba6ac778fc
Update to Pushy v0.14.1.
2020-06-05 12:21:56 -04:00
Jon Chambers
b1d11d4f69
Use APNs signing keys instead of expiring certificates.
2020-05-12 12:48:28 -04:00
Jon Chambers
50d7929e76
Drop the GCM RECEIPT message type (unused).
2020-05-04 17:51:54 -04:00
Jon Chambers
10840b22c5
Don't let one unregistered device block receipt for others.
2020-05-04 17:51:25 -04:00
Jon Chambers
acfbab5915
Update to Pushy v0.13.11.
2020-05-04 17:50:35 -04:00
Moxie Marlinspike
99760ba6a0
Put UUID on server-generated delivery receipt
2019-11-20 12:36:22 -08:00
Moxie Marlinspike
e57f78cf90
Add meter for GCM challenge transmissions
2019-08-01 13:30:49 -07:00
Moxie Marlinspike
4fdbe9b9ff
Support for push preauth
2019-07-11 18:15:10 -07:00
Moxie Marlinspike
3c6b418ca8
Publish fcm retry metrics
2019-05-30 11:05:05 -07:00
Moxie Marlinspike
105a38a7db
Update gcm-sender-async to use jdk11 httpclient
2019-05-30 10:46:40 -07:00
Moxie Marlinspike
e6f25b9c5e
Bring gcm-sender-async in as a module
2019-05-29 11:03:33 -07:00
Moxie Marlinspike
6e0b956e61
Only set the uninstall feedback timestamp when it's zero
...
Otherwise each send will update the timestamp, preventing it from
aging out to the point where the cleaner will pick it up.
2019-05-26 14:27:30 -07:00
Moxie Marlinspike
4d9c9206cf
Delay processing FCM uninstalled feedback
...
Check to make sure client is not still active before unregistering,
since FCM feedback seems to be often erroneous
2019-05-07 10:04:22 -07:00
Moxie Marlinspike
45dc7459b8
Temporarily disable GCM unregistered feedback
2019-05-03 11:51:21 -07:00