Added SubscriptionStatusObserver block to subscribe calls in AWSAppSyncClient #75
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current AppSyncClient subscription API provides only callbacks to receive real time updates, but not enough to provide a better experience. The only callback that can be registered is the
resultHandler
, which provides feedback from failure or the real time message package, not exposing basic connection status like if I managed to subscribe and just sits in the connected state waiting for updates, or if I'm still connecting, not being ready to receive real time updates.The goal of this PR is to expose the status of subscriptions, enabling clients to know when the system is ready to receive real time updates. Not only exposing all steps while establishing a connection but also all different types of errors.
Description of changes:
subscribe
method, requesting the closureSubscriptionStatusObserver
that will provide updates, and the propertystatus
to theMQTTSubscriptionWatcher
protocol.getIdentifier()
, relying on the behaviour thatMQTTSubscriptionWatcher
is locked to be reference typed.AWSAppSyncSubscriptionError
by a more descriptive enum based.Considerations:
This code deprecates:
MQTTSubscriptionWatcher.getIdentifier
AWSAppSyncSubscriptionWatcher.uniqueIdentifier
AWSAppSyncSubscriptionError.additionalInfo
AWSAppSyncSubscriptionError.errorDetails
This code removes:
class SubscriptionsOrderHelper
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.